Je suis le fonctionnaire guide de mise à nivea de 5.1 à 5.2. La première sous-section dit:
Si vous installez une version bêta de Laravel 5.2, ajoutez
"minimum-stability": "beta"
À votre fichier composer.json.Mettez à jour votre fichier composer.json pour qu'il pointe vers
laravel/framework 5.2.*
.Ajoutez
symfony/dom-crawler ~3.0
Etsymfony/css-selector ~3.0
À la section require-dev de votre fichier composer.json.
Maintenant, après avoir introduit les modifications ci-dessus et exécuté composer update
, J'obtiens le (s) erreur (s) suivante (s):
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
et
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Illuminate\Routing\ControllerServiceProvider' not found
et
[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
Les erreurs sont renvoyées après la mise à jour est terminée et la "Génération de fichiers à chargement automatique" a lieu.
Qu'est-ce qui pourrait ne pas être correct?
Cela ne ressemble pas à un problème de package personnalisé, mais à un problème fondamental. Devrais-je continuer avec le guide de mise à niveau et exécuter composer update
APRÈS que tout ait été ajusté pour correspondre à la nouvelle version du framework?
[~ # ~] met à jour [~ # ~]
Lancer composer dump-autoload
Après ne génère pas les erreurs décrites ci-dessus. Toujours déroutant, cependant.
Il n'y a pas Illuminate\Routing\ControllerServiceProvider
plus.
Si j'étais vous, je comparerais mon projet d'application à https://github.com/laravel/laravel/commits/develop
, si vous regardez par exemple https://github.com/laravel/laravel/blob/develop/config/app.php
vous verrez les fournisseurs par défaut pour 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,
Lors de la mise à jour de 5.1 à 5.2 sur des projets existants, nous avons constaté que l'exécution de composer update
avant et après la suppression des lignes pour les fournisseurs
Illuminate\Routing\ControllerServiceProvider::class Illuminate\Foundation\Providers\ArtisanServiceProvider::class
était une séquence nécessaire pour que la mise à jour de la laravel) soit terminée.
Exécuter avant permettrait à laravel de télécharger et de mettre à jour les dépendances de la bibliothèque d'infrastructure actuelle, puis de s'exécuter après la suppression (le compositeur a pu se terminer sans problème)
Nous avons également constaté que toute valeur du fichier .env ne peut pas comporter d'espaces et doit être entourée de guillemets pour fonctionner.
Supprimez les deux fournisseurs de services de config/app.php
Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
Illuminate\Routing\ControllerServiceProvider::class,
La mise à jour du fichier app.php sous config/a résolu un problème, mais avec l’introduction du dossier bootstrap/cache, vous continuerez probablement à rencontrer le même problème.
J'ai exécuté le composer mise à jour Avant de supprimer le fichier mis en cache, je ne cessais donc de frapper la même erreur. Assurez-vous de supprimer d'abord le fichier bootstrap/cache/services.php.
Il y a peut-être une commande artisanale pour cela, mais j'ai totalement manqué cette étape dans la documentation.
J'ai trouvé la solution ici:
https://laravel.com/docs/5.2/upgrade#upgrade-5.2.
Fournisseurs de services
Le Illuminate\Foundation\Providers\ArtisanServiceProvider doit être supprimé de la liste de vos fournisseurs de services dans votre fichier de configuration app.php.
Le Illuminate\Routing\ControllerServiceProvider doit être supprimé de la liste de vos fournisseurs de services dans votre fichier de configuration app.php.
Supprimez packages.php et config.php du dossier de cache bootstrap après son exécution composer dump-autoload