Il y a quelques semaines, le 14 février précisément, Laravel sortait sa version 10 avec quelques nouveautés. Vous vous demandez quelles nouvelles fonctionnalités et mises à jour cette dernière version du Framework PHP vous réserve ? L'occasion pour nous de vous les rassembler ici et en dire un peu plus à ce sujet !
Pourquoi est-ce Laravel 10 et non Laravel 9.x ?
L’habitude du corps de Laravel (l'équipe intégrée) était de publier deux versions majeures par an, soit une tous les six mois environs.
Taylor Otwell, le Fondateur de Laravel, a annoncé ensuite qu’une seule version majeure serait désormais publiée chaque année afin de permettre à l’équipe centrale et à la communauté de consacrer plus de temps et d’efforts à une version spécifique du framework en minimisant les changements radicaux, et d’introduire ainsi de nouvelles fonctionnalités puissantes dans les versions en cours.
Aussi, les mises à jour majeures de Laravel sont donc publiées annuellement tandis que les mises à jour mineures et de correction sont déployées aussi souvent que nécessaire.
Il est crucial d'utiliser une contrainte de version précise lors de l'utilisation de Laravel ou de ses composants pour éviter toute incompatibilité. L'équipe de développement de Laravel s'assure que les mises à jour majeures peuvent être appliquées facilement en un jour ou moins, une contrainte de version telle que ^10.0 est recommandée pour bénéficier de la dernière version stable de Laravel sans risque d'incompatibilité.
La publication de la prochaine version majeure de Laravel, soit la version 11 est datée pour le premier trimestre de février 2024. D'ici là, plusieurs choses à découvrir avec la version 10 !
Compatibilité des arguments nommés
Laravel ne garantit pas la compatibilité ascendante avec les arguments nommés dans les méthodes. En effet, l'équipe de développement se réserve le droit de renommer les arguments des fonctions pour améliorer la qualité du code de Laravel. Par conséquent, l'utilisation d'arguments nommés lors de l'appel des méthodes Laravel doit être entreprise avec précaution, car les noms des paramètres peuvent être modifiés dans le futur.
Quelle est la politique de support des différentes versions de Laravel ?
Laravel assure un support des correctifs de bugs pour une période de 18 mois et des correctifs de sécurité pendant 2 ans pour toutes les versions. En ce qui concerne les bibliothèques additionnelles, seule la dernière version majeure reçoit des correctifs de bugs. Par ailleurs, il est important de vérifier les versions de bases de données prises en charge par Laravel.
Version PHP 8.1 requise pour Laravel 10
Laravel 10.x requiert une version minimale de PHP 8.1 pour fonctionner. Bonne nouvelle, car tout projet Laravel 10 aura forcément une compatibilité avec les Enums.
Les Types
Les type-hints pour l'application skeleton et les stubs ont été contribués par Nuno Maduro. Laravel 10.x utilise les fonctionnalités de type-hinting de PHP 8.1 pour introduire des types d'argument et de retour dans toutes les signatures de méthode. Les informations de type-hint inutiles ont été supprimées pour alléger le code. Cependant, les applications existantes sans type-hints continueront de fonctionner normalement. Tout ça va permettre d’éviter plein de commentaire PHPSTAN.
Laravel Pennant
Le nouveau package Laravel appelé Laravel Pennant, développé par Tim MacDonald permet une gestion simplifiée et légère des feature flags
de votre application, avec des options de stockage en mémoire ou en base de données.
Process
C’est une couche d'abstraction simplifiant le démarrage et l'interaction avec des processus externes, à travers une nouvelle facade appelée Process.
Test Profiling
Grâce à la contribution de Nuno Maduro, l'option --profile
à la commande de test « php artisan test » permet d'identifier facilement les tests les plus lents dans votre application, et leur temps d'exécution sera affiché directement dans la sortie du CLI.
PEST
Laravel a ajouté une nouvelle fonctionnalité qui permet de générer un code de test à l'aide de Pest, un framework de test léger et expressif, lors de la création d'un nouveau projet Laravel en utilisant l'installateur Laravel. Pour activer cette fonctionnalité, vous devez utiliser le drapeau --pest lors de la création de votre application. Cela facilite la création de tests pour votre application Laravel.
> laravel new example-application --pest
Generator CLI Prompts
Les commandes de création de Laravel n'exigent plus d'entrés utilisateurs. Si l'utilisateur invoque les commandes sans entrée, il sera invité à fournir les arguments requis. Cela améliore l'expérience de développement de Laravel. Il existe cette fonctionnalité chez Symfony et elle est bienvenue sur Laravel.
Horizon et Telescope
Horizon et Telescope ont été modernisés avec une apparence rafraîchie et moderne, comprenant une typographie, un espacement et un design améliorés.
Pourquoi passer à la dernière version Laravel 10 ?
Il est important de noter qu'il n'est pas strictement nécessaire de mettre à niveau la version Laravel de notre application vers la dernière version dès qu’une nouvelle version est publiée. Le Frameswork étant Open Source, la base du code du framework est disponible à chaque fois qu'une nouvelle instance de Laravel est installée sur une machine. Il est du coup préférable d'analyser les impacts en amont et donner la priorité à la stabilité des applications plutôt qu'aux mises à niveau systématiques du framework.
Aussi, la migration de Laravel 9 à Laravel 10 peut offrir plusieurs avantages, tels que :
- Des performances améliorées : En raison de l'utilisation de PHP 8.1, Laravel 10 peut offrir de meilleures performances et une consommation de ressources réduite.
- Des fonctionnalités supplémentaires : Laravel 10 offre de nouvelles fonctionnalités qui peuvent améliorer l'expérience de développement et l'efficacité de l'application, et corriger d'éventuels problèmes que l'application rencontre.
- Une sécurité renforcée : Laravel 10 contient des correctifs de sécurité et des améliorations qui peuvent réduire les failles et donc les risques d'attaques.
Conclusion
En conclusion, bien que Laravel 10 ne révolutionne pas entièrement le framework, il apporte des améliorations significatives en termes de confort et de performance. Les évolutions majeures ont principalement eu lieu au cours de la version précédente : Laravel 9.
Aussi, nous sommes impatients de tester Laravel 10 sur de nouveaux projets et de profiter des nouvelles fonctionnalités pour améliorer encore davantage la qualité de nos développements !
Pour réaliser la montée en version, il suffit de suivre le guide officiel.
De plus, afin d’avoir une vision concrète des changements nous vous conseillons de lire le différentiel entre les deux dernières versions.