programing

Laravel 5.1을 5.2로 업그레이드하는 동안 치명적인 오류

copyandpastes 2021. 1. 18. 22:13
반응형

Laravel 5.1을 5.2로 업그레이드하는 동안 치명적인 오류


5.1에서 5.2 로의 공식 업그레이드 가이드따르고 있습니다. 첫 번째 하위 섹션에 따르면

Laravel 5.2 베타 릴리스를 설치하는 경우 "minimum-stability": "beta"composer.json 파일에 추가 하십시오.

를 가리 키도록 composer.json 파일을 업데이트합니다 laravel/framework 5.2.*.

composer.json 파일의 require-dev 섹션에 symfony/dom-crawler ~3.0추가 symfony/css-selector ~3.0하십시오.

이제 위의 변경 사항을 도입하고을 실행 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라벨 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 업데이트를 완료하는 데 필요한 시퀀스였습니다.

Running before would allow laravel to download and update the current framework library dependencies and then running after the removal (composer was able to complete without issue)

We also found that any value in the .env file cannot have spaces and must be surrounded with quotes to work.


Remove the two service providers from config/app.php

Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
 Illuminate\Routing\ControllerServiceProvider::class,

Updating the app.php file under config/ solved one problem but with the introduction of the bootstrap/cache folder you will probably continue running into the same error.

I ran the composer update Before removing the cached file so I kept hitting the same error. Make sure that you delete the bootstrap/cache/services.php file first.

There might be a artisan command for this but I totally missed this step in the documentation.


I found the solution here:

https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0

Service Providers

The Illuminate\Foundation\Providers\ArtisanServiceProvider should be removed from your service provider list in your app.php configuration file.

The Illuminate\Routing\ControllerServiceProvider should be removed from your service provider list in your app.php configuration file.


Remove packages.php and config.php from the bootstrap cache folder after run composer dump-autoload

ReferenceURL : https://stackoverflow.com/questions/34395129/fatal-error-while-upgrading-laravel-5-1-to-5-2

반응형