Laravel 11 sort ce premier trimestre 2024, on décrypte les fonctionnalités et nouveautés qui nous attendent dans notre Framework de cœur !
Une structure de projet simplifiée !
Les nouveaux arrivants sur Laravel 11 auront le droit à une architecture de projet très minimaliste. Cependant, les anciens qui voudront faire la migration de Laravel 10 à Laravel 11, ne verront pas de différence. Ce changement retire environ 70 fichiers à l'installation !
Le répertoire 'app' fait peau neuve.
Celui-ci ne comportera plus qu'un dossier Http avec les controlleurs. Puis à la racine un dossier Models et Providers. On ne retrouvera plus les middlewares ou encore le kernel.
Le répertoire 'config' change radicalement.
Plus aucun fichier de config comme on le connait en .php mais le .env.example se voit rajouter quelques variables de configuration. Il est toutefois possible de publier certains fichiers de configuration avec la commande : php artisan config:publish
Côté répertoire 'database' : peu de changements
Le répertoire database ne comporte que très peu de changements. Seul le préfixe des fichiers de migrations change. On ne retrouve plus une date, mais une séquence permettant de définir l'ordre des migrations à jouer. Un autre petit changement, c'est qu'il y a désormais à la racine une base de données SQLite.
Un répertoire 'route' nettoyé
Le répertoire route se voit retirer les fichiers inutiles comme api.php ou broadcasting.php. Plus besoin de s'en soucier lors d'une nouvelle installation de projet. Cependant, il est possible de les publier avec la commande : php artisan install:api ou broadcasting
Un répertoire 'test' : changements mineurs
Le répertoire test quant à lui ne change pas vraiment. Le trait CreatesApplication disparait. Si vous migrez votre application, vous pourrez le supprimer, car il est dorénavant inclus directement dans le framework.
Dumpeable trait
Bien que le trait Dumpable soit techniquement une nouveauté dans Laravel 11, je dirais qu'il consolide l'idée de dump() et dd() en un trait réutilisable, de sorte que les classes n'aient pas à les implémenter manuellement séparément. Les développeurs d'applications et les auteurs de packages peuvent également bénéficier de ce nouveau trait illuminate/support pour ajouter facilement des méthodes de débogage dans des classes chaînables.
Prise en charge minimale de PHP 8.2
Il s'agit d'une décision précoce, mais les applications Laravel 11 nécessiteront un minimum de PHP 8.2. Si vous utilisez une version plus ancienne de PHP, c'est le moment idéal pour effectuer la mise à niveau.
SQLite 3.35.0+ requis
Si vous utilisez une base de données SQLite, Laravel 11 exigera SQLite 3.35.0 ou une version ultérieure.
Suppression de Doctrine DBAL
Laravel n'est plus dépendant de Doctrine DBAL, et l'enregistrement de types Doctrine personnalisés n'est plus nécessaire pour la création et la modification appropriées de divers types de colonnes qui nécessitaient auparavant des types personnalisés.
Eager Load Limit
Laravel 11 prendra en charge nativement le Eager Load Limit. Vous allez pouvoir limiter le nombre de résultats chargés par parent.
Voici un exemple qui va très bien vous parler :
Mise à niveau vers Laravel 11
On ne peut que vous conseiller d'utiliser la documentation de Laravel pour effectuer la mise à niveau.
Voir toutes les nouveautés ici sur le site Laravel-news.
De notre côté, la Team Dev certifiés Laravel est impatiente de l'exploiter sur nos différents projets et vous faire un retour d'expérience. :)