composer require 报错

xianjinrenshi

问题描述

我在安装tinywan/exception-handler异常处理插件的时候报错了,其实不止是这个扩展有问题,安装其他某一些扩展时也会有一样的报错,但不是全部。

/mnt/projects/app-backend/vendor/tinywan/exception-handler/src/Install.php 这个文件是真实存在的,所以也许是下载前加载的文件?

程序代码

composer require tinywan/exception-handler

报错信息

Reading ./composer.lock (/mnt/projects/app-backend/composer.lock)
Reading /mnt/projects/app-backend/vendor/composer/installed.json
Running composer update tinywan/exception-handler
Loading composer repositories with package information
Reading /root/.composer/cache/repo/https---repo.packagist.org/packages.json from cache
Downloading https://repo.packagist.org/packages.json if modified
[304] https://repo.packagist.org/packages.json
Reading /root/.composer/cache/repo/https---repo.packagist.org/provider-tinywan~exception-handler.json from cache
Downloading https://repo.packagist.org/p2/tinywan/exception-handler.json if modified
[304] https://repo.packagist.org/p2/tinywan/exception-handler.json
Built pool.
Running pool optimizer.
Pool optimizer completed in 0.002 seconds
Found 134 package versions referenced in your dependency graph. 16 (12%) were optimized away.
Updating dependencies
Generating rules
Resolving dependencies through SAT
Looking at all rules.

Dependency resolution completed in 0.001 seconds
Analyzed 118 packages to resolve dependencies
Analyzed 241 rules to resolve dependencies
Lock file operations: 1 install, 0 updates, 0 removals
Installs: tinywan/exception-handler:v1.1.5
  - Locking tinywan/exception-handler (v1.1.5)
Writing lock file
Installing dependencies from lock file (including require-dev)
Reading ./composer.lock (/mnt/projects/app-backend/composer.lock)
Package operations: 1 install, 0 updates, 0 removals
Installs: tinywan/exception-handler:v1.1.5
Reading /root/.composer/cache/files/tinywan/exception-handler/b68ddc73bec607cab539ab0757015190719c1310.zip from cache
  - Loading tinywan/exception-handler (v1.1.5) from cache
  - Installing tinywan/exception-handler (v1.1.5): Extracting archive
Executing async command (CWD): '/usr/bin/unzip' -qq '/mnt/projects/app-backend/vendor/composer/tmp-20a14abe1814e68d152f1711ef76b109' -d '/mnt/projects/app-backend/vendor/composer/a889d5e7'
Executing async command (CWD): rm -rf '/mnt/projects/app-backend/vendor/composer/a889d5e7'
> post-package-install: support\Plugin::install
Script support\Plugin::install handling the post-package-install event terminated with an exception
Downloading https://packagist.org/downloads/
[201] https://packagist.org/downloads/

In ClassLoader.php line 582:

  [ErrorException]                                                                                                                       
  include(/mnt/projects/app-backend/vendor/tinywan/exception-handler/src/Install.php): failed to open stream: No such file or directory  

Exception trace:
  at phar:///usr/local/bin/composer/vendor/composer/ClassLoader.php:582
 Composer\Util\ErrorHandler::handle() at phar:///usr/local/bin/composer/vendor/composer/ClassLoader.php:582
 include() at phar:///usr/local/bin/composer/vendor/composer/ClassLoader.php:582
 Composer\Autoload\{closure}() at phar:///usr/local/bin/composer/vendor/composer/ClassLoader.php:433
 Composer\Autoload\ClassLoader->loadClass() at n/a:n/a
 spl_autoload_call() at n/a:n/a
 defined() at /mnt/projects/app-backend/vendor/workerman/webman-framework/src/support/Plugin.php:23
 support\Plugin::install() at phar:///usr/local/bin/composer/src/Composer/EventDispatcher/EventDispatcher.php:439
 Composer\EventDispatcher\EventDispatcher->executeEventPhpScript() at phar:///usr/local/bin/composer/src/Composer/EventDispatcher/EventDispatcher.php:257
 Composer\EventDispatcher\EventDispatcher->doDispatch() at phar:///usr/local/bin/composer/src/Composer/EventDispatcher/EventDispatcher.php:148
 Composer\EventDispatcher\EventDispatcher->dispatchPackageEvent() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:396
 Composer\Installer\InstallationManager::Composer\Installer\{closure}() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:411
 Composer\Installer\InstallationManager->executeBatch() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:319
 Composer\Installer\InstallationManager->downloadAndExecuteBatch() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:218
 Composer\Installer\InstallationManager->execute() at phar:///usr/local/bin/composer/src/Composer/Installer.php:797
 Composer\Installer->doInstall() at phar:///usr/local/bin/composer/src/Composer/Installer.php:622
 Composer\Installer->doUpdate() at phar:///usr/local/bin/composer/src/Composer/Installer.php:287
 Composer\Installer->run() at phar:///usr/local/bin/composer/src/Composer/Command/RequireCommand.php:490
 Composer\Command\RequireCommand->doUpdate() at phar:///usr/local/bin/composer/src/Composer/Command/RequireCommand.php:339
 Composer\Command\RequireCommand->execute() at phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:298
 Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:1040
 Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:301
 Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:378
 Composer\Console\Application->doRun() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:171
 Symfony\Component\Console\Application->run() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:141
 Composer\Console\Application->run() at phar:///usr/local/bin/composer/bin/composer:88
 require() at /usr/local/bin/composer:29

require [--dev] [--dry-run] [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--fixed] [--no-suggest] [--no-progress] [--no-update] [--no-install] [--no-audit] [--audit-format AUDIT-FORMAT] [--update-no-dev] [-w|--update-with-dependencies] [-W|--update-with-all-dependencies] [--with-dependencies] [--with-all-dependencies] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--] [<packages>...]

截图报错信息里报错文件相关代码

composer.json
"require": {
"php": ">=7.2",
"workerman/webman-framework": "^1.5.0",
"monolog/monolog": "^2.0",
"topthink/think-validate": "^2.0",
"vlucas/phpdotenv": "^5.5",
"webman/console": "^1.2",
"webman-tech/laravel-cache": "^1.2",
"illuminate/filesystem": "^8.83",
"illuminate/database": "^8.83",
"illuminate/pagination": "^8.83",
"illuminate/events": "^8.83",
"midi/work-wechat": "^1.1",
"workerman/validation": "^3.0",
"tinywan/exception-handler": "*"
},

操作系统及workerman/webman等框架组件具体版本

php:7.4.27
composer:2.5.7
webman:1.5.0

683 3 0
3个回答

xianjinrenshi

再次运行

composer require tinywan/exception-handler

完全没有问题,可以正常完成,但是使用时插件的config函数无法正常获取到插件的配置文件,因此插件无法使用

  • 暂无评论
xianjinrenshi

问题已解决,运行

composer dump-autoload -o

重新生成classmap后解决

  • 暂无评论
xianjinrenshi

问题还是存在,只是不是必现的,多require几次有时候会成功,不知道什么原因

  • 暂无评论
年代过于久远,无法发表回答
🔝