wake-up-neo.com

Schwerwiegender Fehler beim Upgrade Laravel 5.1 auf 5.2

Ich folge den offiziellen pgrade-Anleitung von 5.1 auf 5.2. Erster Unterabschnitt sagt:

Wenn Sie eine Beta-Version von Laravel 5.2) installieren, fügen Sie Ihrer composer.json-Datei "minimum-stability": "beta" Hinzu.

Aktualisieren Sie Ihre composer.json-Datei so, dass sie auf laravel/framework 5.2.* Zeigt.

Fügen Sie symfony/dom-crawler ~3.0 Und symfony/css-selector ~3.0 Zum Abschnitt require-dev Ihrer composer.json-Datei hinzu.

Nachdem ich die obigen Änderungen vorgenommen und composer update Ausgeführt habe, wird folgender Fehler angezeigt:

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

und

[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Illuminate\Routing\ControllerServiceProvider' not found

und

[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

Die Fehler werden ausgegeben , nachdem das Update abgeschlossen ist und "Autoload-Dateien erstellen" ausgeführt wird.

Was könnte falsch sein?

Es sieht nicht nach einem benutzerdefinierten, sondern nach einem Kernproblem aus. Soll ich mit der Upgrade-Anleitung fortfahren und composer update Ausführen, nachdem alles an die neue Framework-Version angepasst wurde?

[~ # ~] Update [~ # ~]

Wenn Sie danach composer dump-autoload Ausführen , werden die oben beschriebenen Fehler nicht ausgegeben. Trotzdem verwirrend.

53
lesssugar

Es gibt keinen Illuminate\Routing\ControllerServiceProvider Mehr.

Wenn ich Sie wäre, würde ich mein App-Projekt mit https://github.com/laravel/laravel/commits/develop Vergleichen. Wenn Sie sich beispielsweise https://github.com/laravel/laravel/blob/develop/config/app.php Ansehen, werden Standardanbieter für 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,
59

Bei der Aktualisierung bestehender Projekte von 5.1 auf 5.2 haben wir festgestellt, dass composer update vor und nach dem Entfernen der Leitungen für die Anbieter

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

war eine notwendige Sequenz, um das laravel Update abzuschließen.

Das Ausführen von before würde laravel zum Herunterladen und Aktualisieren der aktuellen Framework-Bibliotheksabhängigkeiten und anschließendes Ausführen nach dem Entfernen ermöglichen (Composer konnte ohne Probleme ausgeführt werden).

Wir haben auch festgestellt, dass jeder Wert in der .env-Datei keine Leerzeichen enthalten darf und von Anführungszeichen umgeben sein muss, damit er funktioniert.

20
iowatiger08

Entfernen Sie die beiden Dienstanbieter aus config/app.php

Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
 Illuminate\Routing\ControllerServiceProvider::class,
20
Jinu P C

Das Aktualisieren der app.php-Datei unter config/hat ein Problem behoben, aber mit der Einführung des Bootstrap/Cache-Ordners werden Sie wahrscheinlich weiterhin denselben Fehler haben.

Ich habe das composer Update ausgeführt, bevor ich die zwischengespeicherte Datei entfernt habe, damit ich immer wieder denselben Fehler auftrat. Stellen Sie sicher, dass Sie zuerst die Datei bootstrap/cache/services.php löschen.

Es könnte einen handwerklichen Befehl dafür geben, aber ich habe diesen Schritt in der Dokumentation völlig verpasst.

8
Adam Patterson

Ich habe die Lösung hier gefunden:

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

Dienstleister

Der Illuminate\Foundation\Providers\ArtisanServiceProvider sollte aus Ihrer Dienstanbieterliste in Ihrer Konfigurationsdatei app.php entfernt werden.

Der Illuminate\Routing\ControllerServiceProvider sollte aus Ihrer Dienstanbieterliste in Ihrer Konfigurationsdatei app.php entfernt werden.

2
Erhnam

Entfernen Sie packages.php und config.php aus dem Cache-Ordner bootstrap nach run composer dump-autoload

0
Daniel Ortegón