Découvrez les nouveautés Laravel 11
Sommaire
- Introduction
- Laravel au régime
- API
- Casts
- SQLite par défaut
- 2 nouvelles commandes
- En plus
- Nouveautés
- Conclusion
Introduction
Cette mise à jour majeure apporte son lot de nouveautés et de changements. Levons le voile sans plus attendre.
Laravel au régime
Ce n’est plus un scoop, Taylor Otwell avait décidé depuis l’année dernière d’amincir le squelette de Laravel.
Le dossier de configuration se retrouve vide et les fichiers de configurations du framework retournent au vendor.
Pour les publier et les éditer, vous devez passer par php artisan config:publish
.
Le dossier Middleware et le fichier app/Http/kernel.php
n’existent plus.
La personnalisation des middlewares internes à Laravel sont faites dans AppServiceProvider
:
VerifyCsrfToken::except([
'*',
]);
L’ajoute d’un nouveau middleware se passe dans bootstrap/app.php
:
return Application::configure()
->withProviders ()
-›withRouting(
web: __DIR__.'/../routes/web.php'
commands: __DIR__.'/../routes/console.php',
)
->withMiddleware(function(Smiddleware) {
$middleware->web(MyAwesomeMiddleware::class):
})
Nos adieux également à app/Console/Kernel.php
. L’enregistrement des commandes se déroule maintenant dans le fichier routes/console.php
.
API
Laravel n’est plus une API par défaut. Sanctum et le fichier routes/api.php
ont été supprimés.
Si vous désirez les revoir, il faut utiliser la commande php artisan install:api
qui remettra en place le scaffolding qui existait auparavant. N’oubliez pas le trait HasApiTokens
!
Casts
Les casts du Modèle sont à définir dans une méthode et plus un tableau.
protected function casts(): array
{
return [
'price' => 'decimal:2',
'password' => 'hashed',
'custom_fields' =› 'json',
];
}
SQLite par défaut
SQLite est desormais le driver de base de données par défaut. Cela permet de démarrer rapidement son environement en local. Pas de panique, tout ceci reste modifiable facilement dans le .env
.
2 nouvelles commandes
Le généreux Taylor Otwell nous gratifie (enfin) de 2 nouvelles commandes artisan pour la création de fichiers :
make:class myClass
et make:interface myInterface
Si vous ne précisez aucun nom, le prompt de Laravel vous en demande un. Aussi, il assignera un __construct
aux classes.
Les options comme --invokable
sont permises.
En plus
Le plus important étant dit, voici une liste non-exhaustive de ce que nous savons à l’heure où je compose cet article :
- PHP 8.2 sera la version minimum requise
- Les contrôleurs par défaut n’étendent plus de BaseController
- L’eager limit est incorporé
- Ajout du trait
Dumpable
- Les migrations par défaut sont squishées
- Le middleware
Authenticate
ne redirige plus vers une location quand la requête entrante attend du JSON - Une commande
php artisan install:broadcasting
permet le scaffolding des websockets de l’application
Nouveautés
L’article et la vidéo ont été rédigés et enregistrés avant la sortie officielle de Laravel 11.
Il est important de noter que la liste des éléments mentionnés n’est pas exhaustive, comme l’indique clairement la publication de Taylor Otwell : de nouvelles fonctionnalités sont à venir !
Things I'll be talking about at @LaraconEU next week...
— Taylor Otwell (@taylorotwell) January 31, 2024
Slim Laravel 11 app structure 🧼
Laravel 11 feature highlights 💫
Laravel Herd updates 🐘
Laravel Reverb 👂
Conclusion
Laravel 11 est une version majeure qui embarque de nombreux changements. Des correctifs significatifs ont été apportés, et la structure a été optimisée pour rehausser l’expérience des développeurs.
L’écosystème de Laravel, ainsi que ses librairies phares, va également s’étoffer. Un exemple notable est Pest 3, pour lequel une vidéo sera publiée dès sa sortie !
N’hésitez pas à me suivre et à vous abonner à Laravel Jutsu pour plus de contenu !