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
'programing' 카테고리의 다른 글
Laravel 5.1로 원시 쿼리를 실행하는 방법은 무엇입니까? (0) | 2021.01.18 |
---|---|
Express 미들웨어의 req.locals vs. res.locals vs. res.data vs. req.data vs. app.locals (0) | 2021.01.18 |
Redux에 여러 미들웨어를 추가하는 방법은 무엇입니까? (0) | 2021.01.18 |
Flutter에서 Stateful과 Stateless 위젯의 관계는 무엇입니까? (0) | 2021.01.18 |
C # 클래스에서 데이터베이스 테이블을 생성하려면 어떻게해야합니까? (0) | 2021.01.18 |