2015-10-12 67 views
1

oriceon-oauth-5-laravel软件包由我的朋友安装,我从git中提取代码。我运行命令作曲家更新,但它引发以下错误Laravel 5.11作曲者更新错误

异常“的Symfony \元器件\调试\异常\ FatalErrorException”与消息“级‘Artdarek \的OAuth \ OAuthServiceProvider在’未找到” /无功/网络/ HTML /测试/供应商/ laravel /框架/ src目录/照亮/基金/ ProviderRepository.php:146

我解决了这个暂时通过注释服务提供商别名app.php文件。

那么,解决这个问题的正确方法是什么。在供应商列表

Artdarek\OAuth\OAuthServiceProvider::class, 

:在laravel 5.11

+0

您曾经试图以最小的分离代码示例使用它可以显示实际的代码导致的吗? – rsutormin

+0

不,我没有。每当用户安装作曲家更新新软件包时,我都会收到此错误。 – karthick

回答

1

的问题是安装包,在你的config/app.php文件后,它的发生,你可能会看到这一点。由于您尚未安装该软件包,因此该类不存在。我想你自从你说过你评论过提供者之后就已经认识到了这一点。

composer.json您将在脚本看到:

这意味着,只要您运行composer update,它首先调用php artisan clear-compiled,它加载你的配置文件,它失败,因为,缺失类的。

两种方式来解决它:

更改供应商是报价中的字符串,如他们是在Laravel 4:

"Artdarek\OAuth\OAuthServiceProvider", 

(这就是为什么没有人真正有这个问题,直到Laravel 5/PHP 5.5)。还是......

真正解决

只要运行composer install而不是composer update。无论如何,这就是你应该做的事情,因为无论你的队友推送的是与composer.lock中的库版本一起工作。所以如果你运行安装,它是a)安装已知的工作版本,b)绕过php artisan命令直到安装完成。

如果你真的必须运行composer update,然后用--no-scripts标志

+1

我做了作曲家更新 - 无脚本..它的工作..是最佳实践?? – karthick

+1

@karthick与团队一起工作时,理想情况下,当您的队友安装或更新包裹时,他们应该在推送前运行所有测试。然后,当你拉动composer.lock文件时,你的队友使用的确切版本号是。当你运行'composer install'时,它会安装这些确切的版本。如果你运行'composer update',那么它会寻找最新版本并且可能会破坏一些东西。所以'作曲家安装'是最好的做法,除非你故意升级库 – andrewtweber