Класс '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