logo Laravel Jutsu

Retour au blog
Découvrez les nouveautés Laravel 11

Découvrez les nouveautés Laravel 11

Sommaire

  1. Introduction
  2. Laravel au régime
  3. API
  4. Casts
  5. SQLite par défaut
  6. 2 nouvelles commandes
  7. En plus
  8. Nouveautés
  9. 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 !

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 !