Я следую официальному руководству по обновлению от 5.1 до 5.2. В первом разделе говорится:
Если вы устанавливаете бета-версию Laravel 5.2, добавьте
"minimum-stability": "beta"
в ваш файл composer.json.
- TokenMismatchException в строке VerifyCsrfToken.php 67 на laravel с использованием ajax
- Laravel 5.2 -> 5.3 Auth :: user () возвращает null
- Laravel 5.2 Регистрация событий
- Контроллер метода не существует.
- Тестирование модуля Laravel с помощью ввода с именем массива
Обновите файл composer.json, чтобы указать на
laravel/framework 5.2.*
.Добавьте
symfony/dom-crawler ~3.0
иsymfony/css-selector ~3.0
в раздел require-dev вашего файла composer.json.
Теперь, после того, как я ввел вышеуказанные изменения и запустил composer update
, я получаю следующие ошибки:
PHP Fatal error: Class 'Illuminate\Routing\ControllerServiceProvider' not found in /home/vagrant/Code/myproject/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 146
а также
[Symfony\Component\Debug\Exception\FatalErrorException] Class 'Illuminate\Routing\ControllerServiceProvider' not found
а также
[RuntimeException] Error Output: PHP Fatal error: Class 'Illuminate\Routing\ControllerServiceProvider' not found in /home/vagrant/Code/myproject/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 146
Ошибки возникают после завершения обновления, и происходит «Генерация файлов автозагрузки».
Что может быть неправильным?
Это не похоже на проблему с настраиваемым пакетом, а на основную. Должен ли я продолжить руководство по обновлению и запустить composer update
ПОСЛЕ того, как все было настроено в соответствии с новой версией фреймворка?
ОБНОВИТЬ
Выполнение composer dump-autoload
впоследствии не вызывает ошибок, описанных выше. Тем не менее, все еще запутано.
Больше нет Illuminate\Routing\ControllerServiceProvider
.
Если бы я был вами, я бы сравнил свой проект приложения с https://github.com/laravel/laravel/commits/develop
, если вы, например, посмотрите https://github.com/laravel/laravel/blob/develop/config/app.php
вы увидите поставщиков по умолчанию для Laravel 5.2:
Illuminate\Auth\AuthServiceProvider::class, Illuminate\Broadcasting\BroadcastServiceProvider::class, Illuminate\Bus\BusServiceProvider::class, Illuminate\Cache\CacheServiceProvider::class, Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, Illuminate\Cookie\CookieServiceProvider::class, Illuminate\Database\DatabaseServiceProvider::class, Illuminate\Encryption\EncryptionServiceProvider::class, Illuminate\Filesystem\FilesystemServiceProvider::class, Illuminate\Foundation\Providers\FoundationServiceProvider::class, Illuminate\Hashing\HashServiceProvider::class, Illuminate\Mail\MailServiceProvider::class, Illuminate\Pagination\PaginationServiceProvider::class, Illuminate\Pipeline\PipelineServiceProvider::class, Illuminate\Queue\QueueServiceProvider::class, Illuminate\Redis\RedisServiceProvider::class, Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, Illuminate\Session\SessionServiceProvider::class, Illuminate\Translation\TranslationServiceProvider::class, Illuminate\Validation\ValidationServiceProvider::class, Illuminate\View\ViewServiceProvider::class, /* * Application Service Providers... */ App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class,
При обновлении от 5.1 до 5.2 в существующих проектах мы обнаружили, что выполнение composer update
до и после удаления строк для поставщиков
Illuminate\Routing\ControllerServiceProvider::class Illuminate\Foundation\Providers\ArtisanServiceProvider::class
была необходимой последовательностью для завершения обновления laravel.
Запуск до этого позволит laravel загружать и обновлять текущие зависимости библиотеки библиотеки, а затем запускать после удаления (композитор смог выполнить без проблем)
Мы также обнаружили, что любое значение в файле .env не может иметь пробелы и должно быть окружено кавычками для работы.
Удалите два поставщика услуг из config / app.php
Illuminate\Foundation\Providers\ArtisanServiceProvider::class, Illuminate\Routing\ControllerServiceProvider::class,
Обновление файла app.php в config / решение одной проблемы, но с введением папки bootstrap / cache вы, вероятно, продолжаете работать с той же ошибкой.
Я запустил обновление для композитора. Прежде чем удалять кешированный файл, я продолжал бить ту же ошибку. Прежде всего убедитесь, что вы сначала удалите файл bootstrap / cache / services.php.
Для этого может быть искусная команда, но я полностью пропустил этот шаг в документации.
Я нашел решение здесь:
https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0
Поставщики услуг
Illuminate \ Foundation \ Providers \ ArtisanServiceProvider следует удалить из списка поставщиков услуг в файле конфигурации app.php.
Illuminate \ Routing \ ControllerServiceProvider следует удалить из списка поставщиков услуг в файле конфигурации app.php.