本地执行composer update已上线的一个项目报错:must be of type Illuminate\Foundation\Application, Illuminate\Foundation\Application
1. 运行环境
docker
1). 当前使用的 Laravel 版本?
应该是11,公司去年开发的项目
2). 当前使用的 php/php-fpm 版本?
PHP 版本:8.2.18
php-fpm 版本:8.2.18
3). 当前系统
Debian GNU/Linux 12 (bookworm)
4). 业务环境
开发环境
5). 相关软件版本
2. 问题描述?
通过git拉下来公司的一个项目后,到项目根目录执行composer update,或者dump-autoload,都会报错,以下是具体的报错信息:
Illuminate\Foundation\ComposerScripts::postAutoloadDump
@php artisan package:discover –ansi
Cannot load Zend OPcache - it was already loaded
PHP Fatal error: Uncaught TypeError: Illuminate\Foundation\Configuration\ApplicationBuilder::construct(): Argument #1 ($app) must be of type Illuminate\Foundation\Application, Illuminate\Foundation\Application given, called in /var/www/http/youqi/spt_website_back/vendor/laravel/framework/src/Illuminate/Foundation/Application.php on line 242 and defined in /var/www/http/youqi/spt_website_back/vendor/laravel/framework/src/Illuminate/Foundation/Configuration/ApplicationBuilder.php:49
Stack trace:#0 /var/www/http/youqi/spt_website_back/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(242): Illuminate\Foundation\Configuration\ApplicationBuilder->construct(Object(Illuminate\Foundation\Application)) #1 /var/www/http/youqi/spt_website_back/bootstrap/app.php(7): Illuminate\Foundation\Application::configure(‘/var/www/http/y…’) #2 /var/www/http/youqi/spt_website_back/artisan(12): require_once(‘/var/www/http/y…’) #3 {main}
thrown in /var/www/http/youqi/spt_website_back/vendor/laravel/framework/src/Illuminate/Foundation/Configuration/ApplicationBuilder.php on line 49
Script @php artisan package:discover –ansi handling the post-autoload-dump event returned with error code 255
我尝试直接创建对应版本的laravel空项目,是可以创建成功的,所以姑且判断本地环境是支持laravel11的,但是在公司项目里面执行composer就会报错
根据网上其他人的解决办法,尝试过:
1、检查.env是否有空格
2、删掉vendor文件夹和composer.lock后重新执行
3、修改php.ini中的memory_limit
都不生效,报错信息看起来也奇怪,根据报错信息,看起来不应该报错才对
4、执行了composer clear后,执行update或dump-autoload会报另一个错:Uncaught ReflectionException: Class “config” does not exist in /var/www/http/youqi/spt_website_back/vendor/laravel/framework/src/Illuminate/Container/Container.php:959
3. 您期望得到的结果?
期望执行composer update或composer dump-autoload等composer命令后可以成功
推荐文章: