Laravel 5.11编写器更新错误

时间:2015-10-12 18:10:33

标签: php laravel symfony laravel-5 laravel-5.1

oriceon-oauth-5-laravel包由我的朋友安装,我从git中提取代码。我运行命令composer update,但它会抛出以下错误

异常'Symfony \ Component \ Debug \ Exception \ FatalErrorException' / var /中的消息'Class'Artdarek \ OAuth \ OAuthServiceProvider'未找到' WWW / HTML /测试/供应商/ laravel /框架/ SRC /照亮/粉底/ ProviderRepository.php:146

我暂时通过在 app.php 文件中评论服务提供商别名来解决此问题。

那么,解决此问题的正确方法是什么。在laravel 5.11

中安装软件包后发生了这种情况

1 个答案:

答案 0 :(得分:1)

问题是,在您的config/app.php文件中,您可能会看到:

Artdarek\OAuth\OAuthServiceProvider::class,

在提供商列表中。由于您还没有安装该软件包,因此该类不存在。我认为,自从你说你评论了供应商以来,你认为这一部分已经解决了。

composer.json中,您会在脚本下看到:

"pre-update-cmd": [
    "php artisan clear-compiled"
],

这意味着无论何时运行composer update,它都会首先调用php artisan clear-compiled,这会加载您的配置文件,但由于缺少类而失败。

两种解决方法:

将提供者更改为字符串中的引用,就像在Laravel 4中一样:

"Artdarek\OAuth\OAuthServiceProvider",

(这就是为什么在Laravel 5 / PHP 5.5之前没有人真正遇到这个问题的原因)。还是......

真正的解决方案

只需运行composer install而不是composer update。无论如何,这应该是你应该做的,因为无论你的队友推动什么,都在使用composer.lock中的库版本。因此,如果您运行install,则a)安装已知的工作版本,b)绕过该php artisan命令,直到安装完成为止。

如果您真的必须运行composer update,请将其与--no-scripts标志

一起使用