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:
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.
Version | PHP | Libérer | Corrections de bugs jusqu'à | Correctifs de sécurité jusqu'à |
---|---|---|---|---|
dix | 8.1 | 14 février 2023 | 6 août 2024 | 4 février 2025 |
11 | 8.2 | T1 2024 | 5 août 2025 | 3 février 2026 |
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
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
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é.
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
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
Voici une liste de tous les PR fusionnés que j'ai trouvés pour préparer la sortie de Laravel 11 :
Saviez-vous que vous pouvez créer la prochaine grande fonctionnalité pour Laravel 11 ?
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.
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