找不到类别“ Way \ Generators \ GeneratorsServiceProvider”

时间:2019-02-19 20:14:58

标签: php laravel google-app-engine composer-php google-app-engine-php

我正在尝试让Laravel在Google App Engine标准版上运行。我已经可以灵活地使用它了,但是需求发生了变化,我们现在需要标准。我在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);,似乎没有明确引用generators程序包。

该生成器软件包似乎是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,由于它已经包含了generators软件包,但由于GAE的某种原因,它试图引用它(在artisan serve上可以正常运行)。我尝试了各种composer安装后命令,但没有任何帮助。

"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"
        ]

1 个答案:

答案 0 :(得分:1)

正如您在评论中提到的那样,问题源于使用xethron/migrations-generatorhttps://github.com/Xethron/migrations-generator),这需要在config/app.phpapp/Providers/AppServiceProvider.php中手动设置服务提供商。奇怪的是,它的composer.json不需要way/generators,而是包含另一个包,其中还包含way/generators的文件(?)。很奇怪,但是可以解释为什么composer install上的事情变得凌乱。

完成后,尽管way/generators适用于旧版本的Laravel,不一定能100%正常工作,但也可以选择对其进行核对或完成手动设置。