Mise à jour de Laravel 5.1 vers 5.2
La documentation officielle ne dit pas tout concernant la mise à jour de 5.1 vers 5.2, voici le détail de ce que j’ai dû faire en plus:
Mettre à jour des fichiers de Laravel depuis le dépôt Git original:
- app/console/Kernel.php
- app/Exceptions/Handler.php
- app/Http/Controllers/Auth/AuthController.php
- app/Http/Controllers/Controller.php
- app/Http/Kernel.php
Celui-là était particulièrement peu documenté, la nouvelle version a dans le tableau appelé $middlewareGroups une partie ‘web’. Comme j’utilise le middleware ‘auth’ pour la partie sécurisée de mon application, j’ai créé une entrée supplémentaire ‘auth’ dans lequel j’ai mis la liste des classes des middleware que j’utilise pour cette partie, ainsi que le middleware “Authenticate”, ce qui donne:
'auth' => [
\App\Http\Middleware\Authenticate::class,
\App\Http\Middleware\MenuMiddleware::class,
\Barryvdh\Cors\HandleCors::class,
\App\Http\Middleware\AppMiddleware::class,
],
- app/Http/Middleware/Authenticate.php
- app/Http/Middleware/RedirectIfAuthenticated.php
- app/Http/routes.php
Toutes les routes ayant trait à l’authentification (auth/*, password/*) sont remplacées par un Route::auth(); - app/Providers/RouteServiceProvider.php
C’est lui qui définit le middleware ‘web’ pour toutes les routes par défaut.
Mise à jour des librairies
Dans le composer.json, il m’a fallu retrouver les branches correspondantes à Laravel 5.2 pour mes librairies. Il faut invariablement retourner auprès de la documentation de chacune pour voir comment chaque auteur a opéré:
"laravelcollective/html": "5.2.*",
"genealabs/laravel-caffeine": "~0.3.0",
"yajra/laravel-oci8": "5.2.*",
"yajra/laravel-datatables-oracle": "~6.0",
"yajra/laravel-datatables-oracle": "~6.0",
Adaptation des fichiers de configuration
Il faut modifier config/app.php comme décrit dans la documentation officielle, en enlevant ArtisanServiceProvider, ControllerServiceProvider.
Ne pas oublier de rajouter la partie “application environment” dans config/app.php pour reprendre la variable d’environnement APP_ENV.
Le fichier config/auth.php est a reprendre depuis une nouvelle version.
Migrations
Attention, la table pour les sessions (lorsqu’elle sont gérées dans la base de données) a changé, il faut donc supprimer la migration originelle et la regénérer:
php artisan session:table
Formulaires d’authentification
Les routes changent, ce n’est plus auth/login mais /login, etc.
Après un bonne mise à jour de composer, voici l’application passée en 5.2 !