最近我安装了一个LaravelFacebookSdk软件包.
安装
我通过添加更新我的composer.json
"sammyk/laravel-facebook-sdk": "~3.0"
然后,我运行作曲家更新
服务提供者
在我的/config/app.PHP中,我将LaravelFacebookSdkServiceProvider添加到providers数组.
'providers' => [ SammyK\LaravelFacebookSdk\LaravelFacebookSdkServiceProvider::class,];
一切都很好然后,我把它推到我的存储库.
这里出现的问题!
第二个开发者进来了git pull并运行作曲家更新
他会得到一个错误
SammyK\LaravelFacebookSdk\LaravelFacebookSdkServiceProvider::class,
是未定义的因为我在我的provider数组中的/config/app.PHP中声明了这一点.
他必须先注释掉该行,然后首先运行作曲家更新.一切顺利安装完成后,再返回并重新取消该行的注释.
其他开发人员每次都要这样做,我们安装了一个新的包?
我在这里遗漏了什么吗?
请告知我是否出了问题.
这里的问题是,有一个PHP artisan清除编译的命令被配置为在您的composer.json文件的更新过程之前运行.而且由于工匠是Laravel应用程序的组成部分,当应用程序代码出现问题时,它会抱怨.由于你有一个尚未存在的类的引用,它将会吐出RuntimeException.您可以通过将该命令从pre-update-cmd列表移动到composer.json中的post-update-cmd列表来修复.
原文链接:https://www.f2er.com/laravel/139306.html所以改变这个:
"scripts": { ... "pre-update-cmd": [ "PHP artisan clear-compiled" ],"post-update-cmd": [ "PHP artisan optimize" ] },
为此:
"scripts": { ... "pre-update-cmd": [ ],"post-update-cmd": [ "PHP artisan clear-compiled","PHP artisan optimize" ] },
现在,清理编译的命令将在更新过程之后运行,当引用的LaravelFacebookSdkServiceProvider类存在时,所以没有更多的错误.