Introduction

Laravel, un framework PHP élégant et puissant qui a révolutionné le développement web. Depuis ses débuts en 2011, Laravel a conquis le cœur des développeurs grâce à sa syntaxe expressive, sa structure bien pensée et sa multitude de fonctionnalités modernes. Que vous soyez un débutant curieux ou un développeur chevronné en quête de perfectionnement, Laravel offre un écosystème robuste pour créer des applications web évolutives, sécurisées et performantes.

Nous allons découvrir les nouveautés de Laravel 11.

Laravel 11

Laravel 11 introduit des mises à jour significatives qui promettent d’améliorer l’expérience de développement pour les développeurs. L’optimisation des performances, la prise en charge des dernières versions de PHP et les fonctionnalités de flux de travail rationalisées rendent le développement PHP aussi fluide et efficace que possible.

Ces améliorations se traduisent par des flux de développement plus fluides, une meilleure performance des applications et un processus de développement globalement plus efficace.

Quelques nouveautés

Les contrôleurs n’étendent plus rien par défaut.
Le répertoire middleware (logiciel qui agit comme une passerelle entre les autres applications, outils et bases de données pour offrir aux utilisateurs des services unifiés) a été supprimé.
Actuellement, Laravel inclut neuf middleware.  On peut personnaliser les middleware dans l’App/ServiceProvider. Voici un exemple :

				
					public function boot(): void
{
    EncryptCookies::except(['some_cookie']);
}
				
			

Le Http/Kernel est révolu.
La plupart des fonctionnalités de Kernel peuvent être faite dans le Bootstrap/App. Voilà un exemple :

				
					return Application::configure()
    ->withProviders ()
    -›withRouting(
        web: __DIR__.'/../routes/web.php'
        commands: __DIR__.'/../routes/console.php',
    )
    ->withMiddleware(function(Middleware Smiddleware) {
        $middleware->web(append: LaraconMiddleware::class):
    })
				
			

Les “Model casts” sont désormais définis comme des méthodes et non plus comme des propriétés. Lorsqu’ils sont définis en tant que méthode, il est possible par exemple d‘appeler d’autres méthodes directement à partir des casts. Voici un exemple utilisant une nouvelle méthode Laravel 11 AsEnumCollection :

				
					protected function casts(): array
{
    return [
        'email_verified_at' => 'datetime',
        'password' => 'hashed',
        'options'=› AsEnumCollection::of(UserOption::class),
    ];
}
				
			

Laravel a beaucoup de fichiers de configuration, et Laravel 11 les supprime. Le fichier .env a été étendu pour inclure toutes les options que l’utilisateur peut définir.

Les routes

Par défaut, il n’y aura que deux fichiers de routes, console.php et web.php. Les routes API deviendront maintenant optionnel. On peut l’installer grâce à la commande suivante “php artisan install:api”.

De même pour la diffusion par websocket, “php artisan install:broadcasting”.

Enfin Laravel 11 exige une version de PHP supérieur ou égale à la 8.2.