Quand je cours:
php composer.phar require kartik-v/yii2-widgets "*"
Je reçois la sortie suivante (en utilisant le drapeau -vvv verbose):
- Installing kartik-v/bootstrap-fileinput (v4.1.7)
Downloading https://api.github.com/repos/kartik-v/bootstrap-fileinput/zipball/f95a7e5fa0a9db1ead445e438653aa71e9f599f9
Downloading: connection...
Downloading: 0%
Downloading: 5%
...
Downloading: 95%
Downloading: 100%
Downloading: 100%
Writing C:/Users/Michael/AppData/Local/Composer/files/kartik-v/bootstrap-fileinput/f95a7e5fa0a9db1ead445e438653aa71e9f599f9.Zip into cache
Extracting archive
[ErrorException]
ZipArchive::extractTo(): Full extraction path exceed MAXPATHLEN (260)
Exception trace:
() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Downloader/ZipDownloader.php:79
Composer\Util\ErrorHandler::handle() at n/a:n/a
ZipArchive->extractTo() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Downloader/ZipDownloader.php:79
Composer\Downloader\ZipDownloader->extract() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Downloader/ArchiveDownloader.php:44
Composer\Downloader\ArchiveDownloader->download() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Downloader/DownloadManager.php:201
Composer\Downloader\DownloadManager->download() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer/LibraryInstaller.php:156
Composer\Installer\LibraryInstaller->installCode() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer/LibraryInstaller.php:87
Composer\Installer\LibraryInstaller->install() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer/InstallationManager.php:152
Composer\Installer\InstallationManager->install() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer/InstallationManager.php:139
Composer\Installer\InstallationManager->execute() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer.php:578
Composer\Installer->doInstall() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer.php:225
Composer\Installer->run() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Command/RequireCommand.php:154
Composer\Command\RequireCommand->execute() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:253
Symfony\Component\Console\Command\Command->run() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:874
Symfony\Component\Console\Application->doRunCommand() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:195
Symfony\Component\Console\Application->doRun() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Console/Application.php:147
Composer\Console\Application->doRun() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:126
Symfony\Component\Console\Application->run() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Console/Application.php:84
Composer\Console\Application->run() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/bin/composer:43
require() at C:\ProgramData\ComposerSetup\bin\composer.phar:25
require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--sort-packages] [packages1] ... [packagesN]
J'ai même essayé d'utiliser le drapeau "--prefer-source" mais j'obtiens la même erreur. Y a-t-il un moyen de dire au compositeur d'augmenter le MAXPATHLEN? De quel chemin se plaint-on exactement?
essayez d'utiliser le --prefer-source flag
composer install --prefer-source
Composer se plaint d'un chemin trop long pour PHP sous Windows lors du téléchargement. Windows a une longueur de chemin maximale (MAXPATHLEN) de 260 caractères, je ne pense donc pas que vous puissiez changer cela.
Lorsque j'ai eu ce problème lors de l'installation de Symfony, je l'ai corrigé en utilisant un chemin court pour le répertoire du projet (tel que C:\projects\myproject).
Lors de l’examen de ce problème, j’ai trouvé qu’il pouvait également être corrigé à l’aide de l’indicateur --prefer-source lors de l’installation, comme suit:
php composer.phar install --prefer-source
Notez que vous avez besoin de git dans le chemin de votre shell Windows pour que cela fonctionne, car cela vérifie la source depuis Github plutôt que de télécharger le fichier de distribution. C'est aussi plus lent.
Notez également que vous devrez peut-être supprimer le dossier vendor/
avant de réinstaller à l'aide de l'indicateur --prefer-source
:
rm -rf vendor/
essayez de raccourcir le chemin d'accès complet à votre projet, tel que c://www/yii-project
, car le système d'exploitation Windows n'autorisait pas le répertoire de plus de 250 caractères.
Essayez de courir en ligne de commande
mklink /j <Link> <Target>
pour créer un lien symbolique et réduire la longueur de votre chemin de fichier à moins de 260 caractères. Plus de détails https://technet.Microsoft.com/en-us/library/cc753194(v=ws.11).aspx
Je crois qu'il se plaint que ce C:/Users/Michael/AppData/Local/Composer/files/kartik-v/bootstrap-fileinput/f95a7e5fa0a9db1ead445e438653aa71e9f599f9.Zip
est probablement supérieur à 256 caractères. D'après ce que je sais, vous ne pouvez pas avoir un chemin plus long que celui sous Windows.
Pas sûr qu'il y ait une solution à cela. Vous pouvez probablement créer un chemin raccourci et y installer votre application.