Класс 'Way\Generators\GeneratorsServiceProvider' не найден

Я пытаюсь запустить Laravel на Google App Engine Standard. Я уже работал над гибкостью, но требования изменились, и теперь нам нужен стандарт. Я использую среду PHP 7.2 с Laravel 5.7. Развертывание работает, но при попытке посетить страницу я просто получаю сообщение об ошибке в журналах:

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). Я перепробовал все виды команд после установки, но ничего не помогло.

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

2 ответа

Решение

Как вы упомянули в комментариях, проблема связана с использованием xethron/migrations-generator ( https://github.com/Xethron/migrations-generator), который требует дополнительной ручной настройки поставщиков услуг либо в config/app.php или же app/Providers/AppServiceProvider.php, Странно то, что его composer.json не требует way/generators, а скорее включает в себя другой пакет, который также содержит файлы (?) для way/generators, Очень странно, но объясняет, почему на composer install,

Как вы уже сделали, обстрелять это вариант или завершить ручную настройку также может подойти, хотя way/generators предназначен для более старых версий Laravel и не обязательно должен работать на 100%.

Если вы переходите на Laravel 6+, удалите его и используйте обновленную версию.

      composer remove --dev "xethron/migrations-generator"

Если это не сработает, найдите любого ServiceProvider, который интегрирует его в ваш код. Как только вы удалите его, вы можете использовать:

      composer require --dev laracasts/generators
Другие вопросы по тегам