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
中安装软件包后发生了这种情况答案 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
标志