2015-12-21 26 views
49

私は公式upgrade guideを5.1から5.2に従っています。最初のサブセクションでは、こう述べています。Laravel 5.1を5.2にアップグレードする際の致命的なエラー

あなたはLaravel 5.2のベータリリースをインストールしている場合は、あなたのcomposer.jsonファイルに "minimum-stability": "beta"を追加します。

composer.jsonファイルをlaravel/framework 5.2.*を指すように更新します。

composer.jsonファイルの require-devセクションにsymfony/dom-crawler ~3.0symfony/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を実行

UPDATE

は、上記のエラーをスローしません。しかし、まだ混乱しています。

+3

今後の読者は、Laravelプロジェクトの自動アップグレードツールである[Laravel Shift](https://laravelshift.com)をチェックしてみてください。 –

答えて

53

これ以上Illuminate\Routing\ControllerServiceProviderはありません。

私があなただったら、私は例えばあなたがhttps://github.com/laravel/laravel/blob/develop/config/app.phpを見ればあなたはLaravel 5.2のデフォルトプロバイダが表示されます、https://github.com/laravel/laravel/commits/developに私のアプリのプロジェクトを比較します:

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, 
+1

これは、config/app.phpから安全にエントリを削除できるということですか? – lesssugar

+0

はい、そうですが、 'app'フォルダの構造とファイルの内容全体が、Laravel 5.2 –

+0

の新しいものと一致していることを確認してください。アップグレードガイドでは、サービスプロバイダのセクションで実際にアップグレードガイドを削除するよう指示されています。すべてのコードと構造が調整されたら、コンポーザーの依存関係を更新する方が良いでしょう。 – lesssugar

17

既存のプロジェクトに5.1から5.2へのアップデートで、我々は、プロバイダ

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

する除去ラインの前と後の composer updateを実行するとcompleするlaravelの更新を得るために必要な配列であることがわかりましたテ。我々はまた、.envファイル内の任意の値を持つことができないことが判明

は除去した後に実行し、その後ダウンロードして、現在のフレームワークライブラリの依存関係を更新し、するlaravelを可能にする前に、実行(作曲は問題なく完了することができました)作業には引用符で囲む必要があります。

7

config/solvedの問題でapp.phpファイルを更新していますが、bootstrap/cacheフォルダが導入されていると、おそらく同じエラーが発生します。

私はコンポーザーアップデートを実行しました。キャッシュされたファイルを削除する前に、同じエラーが発生しました。最初にbootstrap/cache/services.phpファイルを削除してください。

これについては職人のコマンドがあるかもしれませんが、私はドキュメントのこのステップを完全に逃しました。

+1

これは役に立ちましたか?rm bootstrap/cache/*。php fix my error –

17

のconfig/app.php

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

から2つのサービスプロバイダを削除私はここで解決策を見つけた:

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

サービスプロバイダ

を照らし\財団\ Providers \ ArtisanServiceProvider app.php設定ファイルのサービスプロバイダリストから削除する必要があります。

\ Routing \ ControllerServiceProviderは、app.php設定ファイルのサービスプロバイダリストから削除する必要があります。