composer报错:Script @php think service:discover handling the post-autoload-dump event returned...解决

今天要在项目中(TP6)使用workerman,在使用composer安装workman的时候报了以下的错误:

尝试使用网上查找的的方法:

//先删除composer.lock文件再在命令行中执行以下命令
composer update

但是使用这个方法并不能解决问题。

 

继续尝试了许多网上的方法无果,没办法只能跑断点了。在项目的think文件中,打上断点,在项目中运行composer命令的时候就能跑进去。

composer报错:Script @php think service:discover handling the post-autoload-dump event returned...解决_第1张图片

 

当跑到反射执行类进行依赖注册的时候,xdebug提示了一个错误:

composer报错:Script @php think service:discover handling the post-autoload-dump event returned...解决_第2张图片

提示:crmeb\subscribes\SystemSubscribe does not exist

知道具体错误接下来就好办了:

首先我查看了项目的结构,非常确定,这个类是存在的:

composer报错:Script @php think service:discover handling the post-autoload-dump event returned...解决_第3张图片

文件名字,命名空间,类名都是正确的,这时候我下意识的认为是composer的自动加载出了问题,马上查看了autoload-psr4文件夹跟autoload_static文件,发现果然没有引入crmeb目录下的类

composer报错:Script @php think service:discover handling the post-autoload-dump event returned...解决_第4张图片

composer报错:Script @php think service:discover handling the post-autoload-dump event returned...解决_第5张图片

到这里,答案已经呼之欲出了。立马查看composer.json文件,发现了问题的根本所在:

composer报错:Script @php think service:discover handling the post-autoload-dump event returned...解决_第6张图片

项目根本没加载crmeb!

把crmeb加上之后再执行composer update,一切正常了

composer报错:Script @php think service:discover handling the post-autoload-dump event returned...解决_第7张图片

 

 

项目已经成功运行,并且composer不再报错。现在的问题是,是谁,为什么要删掉这行代码。根据提交记录很快就锁定了一名老哥,据他所说,不知道这是干嘛的,就误删了。。。。。。。。。气得吐血。。。

你可能感兴趣的:(PHP,php)