Laravel 11: date de sortie, nouvelles fonctionnalités et améliorations

Laravel 11 est la prochaine version majeure du framework PHP populaire, et elle regorge de nouvelles fonctionnalités et d'améliorations. Dans ce tutoriel, vous saurez : Quand sortira Laravel 11 ? Comment installer Laravel 11 ? Quoi de neuf dans Laravel 11 ? et plus. 

Laravel est un framework Web PHP puissant et flexible qui a acquis une énorme popularité dans le monde du développement Web.

Il fournit aux développeurs un riche ensemble d'outils et de fonctionnalités qui facilitent la création d'applications Web robustes et évolutives.

La 11e version de Laravel sortira l'année prochaine, et nous savons déjà quelques petites choses à ce sujet.

Table des matières:

  • Quand sortira Laravel 11 ?
  • Comment installer Laravel 11 ?
  • Quoi de neuf dans Laravel 11 : fonctionnalités et modifications
  • Abandon de la prise en charge de PHP 8.1
  • Accueillez un squelette d'application plus minimaliste
  • Le Dumpable concerne (dump() et dd() de vos objets)
  • La nouvelle méthode Model::casts() plus pratique
  • Préparation de la sortie de Laravel 11
  • Comment contribuer à Laravel 11 ?

Quand sortira Laravel 11 ?

Selon la politique de support , Laravel 11 devrait sortir le 6 février 2024 .

La sortie de Laravel 11 ne signifie pas pour autant que vous devez mettre à jour tous vos projets immédiatement.

Le framework avait pour la dernière fois LTS (Long-Term Support) dans la version 6, mais chaque version majeure a deux ans de mises à jour , ce qui devrait vous donner suffisamment de temps pour vérifier votre base de code et la mettre à niveau.

Laravel 10 recevra des correctifs de bogues jusqu'au 6 août 2024 et des correctifs de sécurité jusqu'au 4 février 2025.

VersionPHPLibérerCorrections de bugs jusqu'àCorrectifs de sécurité jusqu'à
 dix8.114 février 20236 août 20244 février 2025
 118.2T1 20245 août 20253 février 2026

Comment installer Laravel 11 ?

Laravel 11 n'est pas sorti. Par conséquent, vous devez utiliser l' indicateur --dev sur le programme d'installation officiel de Laravel, qui extrait la branche principale du référentiel laravel/laravel qui contient toujours le dernier code.

laravel new hello-world --dev

Ou, si vous préférez utiliser explicitement Composer :

composer create-project --prefer-dist laravel/laravel hello-world dev-master

Quoi de neuf dans Laravel 11 : fonctionnalités et modifications

Abandon de la prise en charge de PHP 8.1

Lorsque Laravel 11 sera publié, PHP 8.2 sera établi et PHP 8.3 sera également stable. Avec la prise en charge des deux dernières versions majeures de PHP, Laravel peut aller de l'avant et abandonner la 8.1.

Mais rappelez-vous : vos applications Laravel n'ont pas besoin d'être mises à jour vers les dernières et meilleures dès leur sortie.

Surtout si vous avez des projets avec des clients rémunérés ou des employés qui dépendent d'eux pour faire leur travail.

Ces projets doivent avancer lentement mais sûrement en effectuant des tests approfondis. Ne vous précipitez pas.

Voir la pull request sur GitHub : [11.x] Drop PHP 8.1 support

PHP 8.2

Accueillez un squelette d'application plus minimaliste

Laravel 11 est livré avec un squelette d'application plus mince. L'idée est que vous devriez avoir moins de code passe-partout à gérer. Je ne pourrais pas être plus d'accord. Voici les détails de ce changement :

Dans AuthServiceProvider , la propriété $policies a été supprimée, car elles sont automatiquement découvertes par le framework.

Dans EventServiceProvider , la SendEmailVerificationNotification n'est plus nécessaire, car la base EventServiceProvider s'occupe de l'enregistrer. Vous remarquerez également que la découverte automatique des événements est désormais activée par défaut.

BroadcastServiceProvider n'est plus nécessaire et a été supprimé. Le framework ne charge pas automatiquement le fichier routes/channels.php .

RedirectIfAuthenticated est maintenant plus simple grâce à celui de base dans les composants internes du framework.

Le middleware Authenticate n'appelle plus redirectTo() pour les routes JSON. Cela supprime une vérification ternaire inutile.

Les middlewares EncryptCookies , PreventRequestsDuringMaintenance.php , TrimStrings , TrustHosts , TrustProxies , ValidateCsrfToken et ValidateSignature ont été supprimés du squelette.

Les commandes Artisan personnalisées sont désormais chargées automatiquement. Il n'est pas nécessaire d'appeler la méthode load() dans le noyau de la console.

Le routes/console.php a été supprimé. Les commandes Artisan basées sur la fermeture peuvent être enregistrées dans le noyau de la console.

Certaines migrations ont été consolidées dans un seul fichier ou simplement supprimées.

Les traits AuthorizesRequests et ValidatesRequests ont été supprimés du contrôleur de base.

Le fichier bootstrap/app.php a été réduit à seulement 3 lignes de code.

Le gestionnaire d'exceptions a été supprimé.

Voici le PR original pour Laravel 10 ( [10.x] Slimmer Application Skeleton ), qui a ensuite été déplacé vers Laravel 11. Vous trouverez encore plus d'informations sur ce qui a été changé.

Le Dumpable concerne (dump() et dd() de vos objets)

Cette pull request introduit un nouveau trait Dumpable , destiné à remplacer les méthodes dd et dump actuelles dans la plupart des classes de Laravel.

Le trait permet aux utilisateurs de Laravel et aux auteurs de packages d'inclure facilement des méthodes de débogage dans leurs classes en utilisant ce trait.

Voici un exemple de code montrant comment il peut être utilisé :

<?php
 
namespace App\ValueObjects;
 
use Illuminate\Support\Traits\Dumpable;
use Illuminate\Support\Traits\Conditionable;
 
class Address
{
    use Conditionable, Dumpable;
 
    // ...
}
 
$address = new Address;
 
// Before:
$address->foo()->bar();
 
// After:
$address->foo()->dd()->bar();

Voir la pull request sur GitHub : [11.x] Adds Dumpable concern

La nouvelle méthode Model::casts() plus pratique

Habituellement, dans Laravel, vous déclarez le casting d'attributs dans un modèle Eloquent comme ceci :

class User extends Model
{
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
}

Avec cette mise à jour, vous pouvez désormais définir votre casting via une méthode casts () dans votre modèle, ce qui vous donne la possibilité d'utiliser des méthodes statiques de la classe effectuant le casting. Voici à quoi ça ressemble:

class User extends Model
{
    protected function casts(): array
    {
        return [
            'foo' => AsCollection::using(FooCollection::class),
        ];
    }
}

De plus, vous pouvez désormais également spécifier vos casts sous forme de tableau :

class User extends Model
{
    // Even in the old $casts property!
    protected $casts = [
        'foo' => [AsCollection::class, FooCollection::class],
    ];
 
    protected function casts() : array
    {
        return [
            'foo' => [AsCollection::class, FooCollection::class],
        ];
    }
}

La méthode casts() est prioritaire sur la propriété $casts .

Toutes ces modifications sont ininterrompues, ce qui signifie qu'elles n'affecteront pas votre code actuel si vous mettez à jour vers Laravel 11.

Voir la demande d'extraction sur GitHub : [11.x] Ajoute la méthode Model::casts() et les méthodes statiques nommées pour les roulettes intégrées

Préparation de la sortie de Laravel 11

Voici une liste de tous les PR fusionnés que j'ai trouvés pour préparer la sortie de Laravel 11 :

Comment contribuer à Laravel 11 ?

Saviez-vous que vous pouvez créer la prochaine grande fonctionnalité pour Laravel 11 ?

  1. Découvrez ce qui se passe pour Laravel 11 sur GitHub : https://github.com/laravel/framework/pulls . Les Pull Requests vous diront ce qui a déjà été fait.
  2. Prenez l'un de vos problèmes avec le cadre et créez vous-même une solution.
  3. Envoyez le PR au référentiel laravel/framework, recueillez les commentaires, améliorez et fusionnez.

Un conseil important pour augmenter vos chances d'être fusionné : ajoutez quelque chose au framework qui est une victoire pour les développeurs, mais pas une douleur à maintenir pour Taylor et son équipe à long terme.

Demandes d'extraction sur le référentiel laravel/framework.

C'est ce qui est nouveau dans Laravel 11 pour le moment.

Il y a plus à venir jusqu'en février 2024, cependant.

#laravel #php

11.80 GEEK