Пакет symfony / finder - это транзитивная зависимость в моем приложении. Я попытался сделать composer update
и получил следующий результат:
user@host:/var/www$ composer update && composer check
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 51 updates, 0 removals
- Updating symfony/finder (v5.1.0 => v5.1.2):
In ClassLoader.php line 444:
[ErrorException]
include(/var/www/vendor/composer/../symfony/finder/Comparator/NumberComparator.php): failed to open stream: No such file or directory
Exception trace:
at /var/www/vendor/composer/ClassLoader.php:444
Composer\Util\ErrorHandler::handle() at /var/www/vendor/composer/ClassLoader.php:444
include() at /var/www/vendor/composer/ClassLoader.php:444
Composer\Autoload\includeFile() at /var/www/vendor/composer/ClassLoader.php:322
Composer\Autoload\ClassLoader->loadClass() at n/a:n/a
spl_autoload_call() at /var/www/vendor/symfony/finder/Finder.php:125
Symfony\Component\Finder\Finder->depth() at /var/www/vendor/composer/composer/src/Composer/Util/Filesystem.php:77
Composer\Util\Filesystem->emptyDirectory() at /var/www/vendor/composer/composer/src/Composer/Downloader/FileDownloader.php:123
Composer\Downloader\FileDownloader->doDownload() at /var/www/vendor/composer/composer/src/Composer/Downloader/FileDownloader.php:97
Composer\Downloader\FileDownloader->download() at /var/www/vendor/composer/composer/src/Composer/Downloader/ArchiveDownloader.php:38
Composer\Downloader\ArchiveDownloader->download() at /var/www/vendor/composer/composer/src/Composer/Downloader/ZipDownloader.php:77
Composer\Downloader\ZipDownloader->download() at /var/www/vendor/composer/composer/src/Composer/Downloader/FileDownloader.php:225
Composer\Downloader\FileDownloader->update() at /var/www/vendor/composer/composer/src/Composer/Downloader/DownloadManager.php:271
Composer\Downloader\DownloadManager->update() at /var/www/vendor/composer/composer/src/Composer/Installer/LibraryInstaller.php:218
Composer\Installer\LibraryInstaller->updateCode() at /var/www/vendor/composer/composer/src/Composer/Installer/LibraryInstaller.php:120
Composer\Installer\LibraryInstaller->update() at /var/www/vendor/composer/composer/src/Composer/Installer/InstallationManager.php:193
Composer\Installer\InstallationManager->update() at /var/www/vendor/composer/composer/src/Composer/Installer/InstallationManager.php:160
Composer\Installer\InstallationManager->execute() at /var/www/vendor/composer/composer/src/Composer/Installer.php:611
Composer\Installer->doInstall() at /var/www/vendor/composer/composer/src/Composer/Installer.php:232
Composer\Installer->run() at /var/www/vendor/composer/composer/src/Composer/Command/UpdateCommand.php:163
Composer\Command\UpdateCommand->execute() at /var/www/vendor/symfony/console/Command/Command.php:258
Symfony\Component\Console\Command\Command->run() at /var/www/vendor/symfony/console/Application.php:911
Symfony\Component\Console\Application->doRunCommand() at /var/www/vendor/symfony/console/Application.php:264
Symfony\Component\Console\Application->doRun() at /var/www/vendor/composer/composer/src/Composer/Console/Application.php:281
Composer\Console\Application->doRun() at /var/www/vendor/symfony/console/Application.php:140
Symfony\Component\Console\Application->run() at /var/www/vendor/composer/composer/src/Composer/Console/Application.php:113
Composer\Console\Application->run() at /var/www/vendor/composer/composer/bin/composer:62
Я проверил, и оказалось, что каталог /var/www/vendor//symfony/finder
просто полностью пуст. Я пробовал обновиться до 5.1.1, и результат был таким же. Запуск composer dump
тоже не помог.
Поэтому мне пришлось добавить symfony / finder 5.1.0 в качестве зависимости в мое приложение, чтобы Composer продолжал работать. И это помогло - все остальные пакеты обновлялись без сучка и задоринки. отключен в https://github.com/symfony/finder.
Я запускаю Composer 1.10.7 внутри контейнера Docker. Вот как выглядит composer. json:
{
"name": "name",
"type": "project",
"description": "",
"license": "proprietary",
"require": {
"php": "^7.4.3",
"ext-decimal": "^1.1",
"ext-dom": "*",
"ext-ftp": "*",
"ext-intl": "*",
"ext-json": "*",
"ext-libxml": "*",
"ext-pdo": "*",
"ext-redis": "*",
"ext-simplexml": "*",
"ext-sync": "*",
"ext-xhprof": "^2.2",
"ext-xml": "*",
"ext-zip": "*",
"alhimik1986/php-excel-templator": "^1.0",
"fideloper/proxy": "^4.2",
"fruitcake/laravel-cors": "^1.0",
"guzzlehttp/guzzle": "^6.3",
"laravel/framework": "^7.0",
"laravel/horizon": "^4.3",
"laravel/telescope": "^3.2",
"laravel/tinker": "^2.0",
"pbweb/xhprof": "^1.0",
"php-decimal/laravel": "^1.1",
"php-decimal/php-decimal": "^1.1",
"phpoffice/phpexcel": "^1.8",
"phpoffice/phpspreadsheet": "1.12.*",
"propaganistas/laravel-phone": "^4.2",
"webmozart/assert": "^1.8"
},
"require-dev": {
"barryvdh/laravel-debugbar": "^3.3",
"barryvdh/laravel-ide-helper": "^2.7",
"doctrine/dbal": "~2.10",
"facade/ignition": "^2.0",
"friendsofphp/php-cs-fixer": "^2.16",
"fzaninotto/faker": "^1.9.1",
"mockery/mockery": "^1.3.1",
"nunomaduro/collision": "^4.1",
"nunomaduro/larastan": "^0.6",
"phpstan/phpstan": "^0.12",
"phpunit/phpunit": "^9.1",
"rector/rector": "^0.7",
"roave/security-advisories": "dev-master",
"sebastian/phpcpd": "^5.0",
"squizlabs/php_codesniffer": "^3.5",
"timacdonald/log-fake": "^1.6"
},
"config": {
"optimize-autoloader": true,
"preferred-install": "dist",
"sort-packages": true,
"process-timeout": 0
},
"extra": {
"laravel": {
"dont-discover": []
}
},
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
],
"files": [
"app/Helpers/system.php"
]
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"minimum-stability": "dev",
"prefer-stable": true,
"scripts": {
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover --ansi"
],
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate --ansi"
],
"cs": [
"./vendor/bin/phpcs --standard=./config/tools/phpcs.xml ./app/ ./tests/"
],
"cs-fix": [
"php vendor/bin/php-cs-fixer fix"
],
"cpd": [
"./vendor/bin/phpcpd ./app/ ./resources/views/"
],
"phpstan": [
"./vendor/bin/phpstan analyse -c /var/www/config/tools/phpstan.neon"
],
"churn": [
"./vendor/bin/churn run -c ./config/tools/churn.yml ./app/ ./tests/"
],
"check": [
"./check-code-health.sh"
],
"test:features": [
"composer test -- --testsuite Feature"
],
"test:features:verbose": [
"composer test:verbose -- --testsuite Feature"
],
"test:unit": [
"composer test -- --testsuite Unit"
],
"test:unit:verbose": [
"composer test:verbose -- --testsuite Unit"
],
"test:unit:coverage": [
"composer test:coverage -- --testsuite Unit"
],
"test:verbose": [
"./vendor/bin/phpunit --configuration=./config/tools/phpunit.xml --do-not-cache-result --colors=always --testdox --verbose"
],
"test:coverage": [
"composer test -- --coverage-html=./storage/coverage"
],
"test": [
"./vendor/bin/phpunit --configuration=./config/tools/phpunit.xml --do-not-cache-result --colors=always"
]
}
}