【发布时间】:2019-02-19 20:14:58
【问题描述】:
我正在尝试让 Laravel 在 Google App Engine Standard 上运行。我已经让它灵活地工作了,但是需求发生了变化,我们现在需要标准。我在 Laravel 5.7 中使用 PHP 7.2 环境。部署工作,但是当我试图访问一个页面时,我只是在日志中得到一个错误:
Symfony\Component\Debug\Exception\FatalThrowableError: Class 'Way\Generators\GeneratorsServiceProvider' not found
at Illuminate\Foundation\Application->register (/srv/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:662)
至少在本地对我来说第 662 行只是 return new $provider($this);,它似乎没有明确引用生成器包。
那个生成器包似乎是way/generators,但是当我在本地执行composer require way/generators 时,它会发出一百万个不同的警告,然后是
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
In GeneratorsServiceProvider.php line 58:
Call to undefined method Illuminate\Foundation\Application::share()
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
从我读过的内容来看,Laravel > 5 不需要生成器包,因为它已经包含了它,但由于某种原因在 GAE 上它试图引用它(在本地它运行良好 artisan serve)。我尝试了各种 composer post install 命令,但没有任何帮助。
"post-install-cmd": [
"php artisan cache:clear",
"php artisan optimize:clear",
"php artisan config:clear",
"php artisan config:cache",
"Illuminate\\Foundation\\ComposerScripts::postInstall",
"php artisan optimize",
"chmod -R 755 bootstrap\/cache"
]
【问题讨论】:
-
奇怪!在 GAE 和本地运行
composer depends way/generators以查看您的哪些依赖项需要它可能会有所帮助。 -
@1000Nettles 在本地和 GAE 上我刚回来
[InvalidArgumentException] Could not find package "way/generators" in your project。似乎图书馆存在的问题不是问题,而是它不存在,而 Laravel 试图引用它 -
Laravel 默认不附带这个库,这就是为什么这真的很奇怪。接下来的步骤值得在你的代码库中搜索
Way\Generators,看看它是否会在某个时候以某种方式偷偷进入。特别是查看config/app.php以了解与它相关的任何内容。 -
是的,如果我运行的是 Laravel "way/generators": "^3.0” 添加到我的 composer.json 要求部分,当我部署到 GAE 时,它实际上只是正确部署并且没有吐出对未定义方法的调用。它安装正确,现在我在 GAE 上遇到不同的错误。更奇怪的是,它实际上是 require dev 中的某些东西正在使用的方式生成器
xethron/migrations-generator的克隆。核弹解决了这一切 -
很高兴你明白了。 :)
标签: php laravel google-app-engine composer-php google-app-engine-php