L’équipe de Laravel avait annoncé un changement de cycle pour la sortie des nouvelles versions de Laravel. Ils ont tenu leurs engagements et la nouvelle version du framework PHP est déjà disponible pour tout le monde. Au menu pas mal de nouveautés bienvenues qui améliorent encore un peu plus le framework Laravel avec des changements qui le rendent plus clair sur certains points. Je vais essayer de vous faire un petit tour d’horizon le plus complet possible.
Si vous mettez à jour de Laravel 10 vers Laravel 11, attention la première chose importante. Il s’agit de votre version de PHP. Alors que Laravel 10 demandait au minimum PHP 8.1, avec Laravel 11 le minimum passe à PHP 8.2. Pour être tranquille un moment, je vous conseille d’installer directement PHP 8.3 pour un nouveau projet avec Laravel 11 comme ça, vous n’aurez pas besoin de retoucher à votre configuration avant un bon moment ! Sachez qu’avec le nouveau cycle de sortie de Laravel, la version 12 devrait arriver au même moment l’année prochaine.
Si vous souhaitez migrer de Laravel 10 vers Laravel 11, vous avez un guide complet dans la documentation officielle avec une liste détaillée des impacts sur votre application.
Les changements dans Laravel 11
Dans Laravel 11, de nouvelles avancées ont été introduites pour rendre le framework plus efficace et agréable à utiliser pour les développeurs. Voici un tour d’horizon des améliorations clés !
Suppression de certains fichier de route par défaut
Les fichiers de routing api.php et channels.php ne sont plus présents par défaut, car de nombreuses applications n’en ont pas besoin. Vous pouvez les générer à la demande avec les commandes Artisan install:api et install:broadcasting.
Nouvelle structure d’application
Laravel 11 présente une structure d’application épurée, centrée sur un fichier de configuration bootstrap/app.php
remanié. Ce fichier devient le cœur de la configuration de l’application, permettant de personnaliser le routage, les middleware, les fournisseurs de services, la gestion des exceptions, et plus encore. Cette approche consolide les paramètres du comportement de l’application qui étaient auparavant dispersés, offrant une expérience plus intégrée et moderne.
Fournisseurs de services simplifiés
La nouvelle version réduit le nombre de fournisseurs de services par défaut à un seul AppServiceProvider
, englobant les fonctionnalités des anciens fournisseurs. Cela simplifie la gestion des services tels que la découverte d’événements, les liaisons de modèles de routes et les portails d’autorisation, qui peuvent maintenant être gérés directement dans AppServiceProvider
.
Changement pour les middlewares
Laravel 11 intègre les middleware directement dans le framework, réduisant le volume de code dans la structure de l’application. De nouvelles méthodes permettent une personnalisation approfondie des middleware à partir de bootstrap/app.php
, éliminant le besoin d’une classe kernel HTTP séparée.
Changement pour la planification des taches
Une nouvelle façade Schedule
permet de définir des tâches planifiées directement dans le fichier routes/console.php
, simplifiant la gestion des tâches cron et supprimant le besoin d’une classe kernel de console.
Nouvelles commandes Artisan
Des nouvelles commandes Artisan pour la création rapide de classes, énumérations, interfaces et traits sont introduites pour gagner du temps.
Voici pour les principales modifications, mais il y en a encore beaucoup d’autres donc je vous recommande d’aller voir la documentation officielle de Laravel 11. Vous trouverez aussi des exemples de code pour illustrer ces changements. Si vous aimez bien la vidéo je vous conseille de jeter un coup d’œil car c’est bien expliqué :