Laravel 10 : fonctionnalités et mises à jour

Avec la demande croissante de services et de mises à jour exceptionnels sur le marché, l’équipe principale de Laravel est déterminée à ne négliger aucun détail pour faire de Laravel le premier choix des business owners. C’est dans cette optique qu’ils présentent le dernier investissement de leur franchise avec Laravel 10. Dans cet article, nous allons vous présenter les nouvelles fonctionnalités et mises à jour dans Laravel 10 qui retiendront l’attention des développeurs et des chefs d’entreprise et les inciteront à mettre à jour leurs applications Laravel existantes.

Laravel 10, date de sortie

Laravel et ses packages officiels suivent la méthodologie Semantic Versioning, qui implique la publication de mises à jour majeures du framework une fois par an au cours du premier trimestre. Parallèlement, des mises à jour mineures peuvent être publiées en fonction des besoins. La date de sortie de Laravel 10 étant fixée au 13 février 2023, la dernière version du framework est arrivée, avec de nouvelles fonctionnalités et des mises à jour intéressantes. Auparavant, une nouvelle version de Laravel était publiée tous les six mois. Cependant, après la sortie de Laravel 9 en février 2022, l’équipe principale a adopté uncalendrier de publication annuel, comme suit :

  • Laravel 9 : 8 février 2022       
  • Laravel 10 : 13 février 2023   
  • Laravel 11 : 6 février 2024

Selon la page d’information officielle de Laravel, Laravel 9 recevra des corrections de bogues programmées jusqu’au 8 août 2023 et des correctifs de sécurité jusqu’au 6 février 2024. Laravel 10 devrait quant à lui recevoir des corrections de bogues jusqu’au 6 août 2024 et des correctifs de sécurité jusqu’au 4 février 2025.

Nouveautés de Laravel 10 : dernières fonctionnalités et mises à jour

L’équipe derrière le framework s’efforce toujours d’apporter le meilleur à ses utilisateurs, c’est pourquoi il est recommandé d’utiliser des contraintes de version telles que ‘^10.0’ lorsqu’on fait référence au framework ou à ses composants dans une application ou un package. Car, les nouvelles versions peuvent être accompagnées de modifications et de mises à jour notables. La version actuelle de Laravel 10 comprend également plusieurs améliorations substantielles qui bénéficieront aux propriétaires de produits. Examinons ces changements de plus près :

Suppression de la prise en charge de PHP 8.0

Laravel 10 ne prend plus en charge PHP 8.0, et vous devez passer à PHP 8.1 ou 8.2. Bien qu’il ne soit pas nécessaire de mettre à jour immédiatement vos applications Laravel vers sa dernière version dès sa sortie, des tests approfondis sont toujours recommandés. En particulier pour les projets avec des clients ou des employés rémunérés. En outre, la prise en charge de Predis v1 a été interrompue en même temps que PHP 8.0, et vous devez passer à Predis v2.

Introduction Laravel Pennant

Laravel Pennant est un ensemble de fonctions simples et légères qui vous permet de déployer facilement de nouvelles fonctionnalités au sein de votre application. Il inclut une interface de test A/B, supporte les stratégies de développement basées sur le tronc, et plus encore. Les feature flags permettent d’activer ou de désactiver une fonctionnalité au moment de l’exécution sans modifier le code.

 Gestion facile des processus

Laravel offre une API simple et complète pour le composant Symphony Process, ce qui vous permet d’exécuter facilement des processus externes dans votre application Laravel. Cette fonctionnalité de processus répond à des cas d’utilisation courants, offrant une expérience de développement hautement améliorée.

Règles de validation invocables par défaut

Avec Laravel 9, le drapeau « –invokable » devait être ajouté après la commande artisan lors de la création d’une nouvelle règle invocable. Cependant, dans Laravel 10, vous pouvez simplement exécuter la commande
suivante pour créer une nouvelle règle invocable:

php artisan make: rule CustomRule

Le code modèle est simple et facile à comprendre, ce qui rend moins intimidant pour les développeurs la création de leurs propres règles de validation personnalisées.

Code squelette de l’application avec déclarations de type

Dans le passé, Laravel utilisait des DocBlocks dans son code squelette pour expliquer clairement la fonction d’un code particulier et les réponses ou paramètres qu’il fournit. Cependant, avec les nouvelles déclarations de type, tous les codes utilisateurs du framework comporteront désormais des indications de type et des types de retour. Ces améliorations présentent des avantages supplémentaires et n’ont pas d’incidence sur la compatibilité ascendante du cadre de base. Cela inclut les arguments de méthode, les types de retour, l’élimination des annotations inutiles lorsque cela est possible, l’exclusion de la propriété Types et l’autorisation pour les utilisateurs d’accéder aux arguments de fermeture.

Suppression de dispatchNow()

Dans Laravel 10, la méthode ‘dispatchNow()’ a été supprimée car elle était dépréciée dans Laravel 9 en faveur de ‘dispatchSync()’. Il est indispensable de la remplacer dans tous vos projets existants, car il s’agit d’un break change, mais la solution est simple.

Dépréciations de Laravel 9

Avec la récente mise à jour de Laravel, l’équipe élimine progressivement les méthodes dépréciées dans Laravel 9 dans la branche Laravel 10. La mise à jour de la documentation Laravel concernant le processus de mise à jour, y compris une liste de toutes les méthodes et package obsolètes, est présente dans la documentation.

Ceux qui prévoient de mettre à jour leurs projets vers Laravel v10 devront réécrire leur code avec une nouvelle approche pour atteindre le résultat souhaité. Voici quelques-unes des dépréciations et suppressions de la branche 9 à la branche principale :

  •         La méthode Route::home, qui était obsolète dans Laravel 9
  •         La méthode getBaseQuery, qui a un équivalent toBase
  •         La classe MaintenanceModeException, qui n’est plus utilisée
  •       Le trait MocksApplicationServices
  •         La méthode Mail::failures dans le faux mail
  •         Une recommandation d’utiliser $casts au lieu de la propriété $dates, qui est obsolète
  •         La méthode assertTimesSent()
  •         Le support pour Predis 1 et doctrine/dbal 2 n’est plus disponible
  •         Toutes les dépréciations liées à doctrine/dbal depuis que Laravel a abandonné le support de la version 2.

Devriez-vous passer à Laravel 10 ?

Il est important de noter que Laravel est un framework open-source, donc chaque fois que vous installez une nouvelle instance sur votre appareil, vous possédez la base de code. Même si votre version n’est plus supportée, votre application sera toujours opérationnelle. Cependant, vous serez responsable de la maintenance de la version par vos propres moyens. Il est conseillé de donner la priorité à la stabilité plutôt qu’à la mise à jour du framework. N’envisagez la mise à jour vers Laravel 10 que si :

  • Votre application Laravel actuelle est stable et fonctionne correctement.
  • La mise à jour apportera une fonctionnalité nécessaire ou résoudra un bug critique qui améliorera les performances de votre application.
  • Vous avez testé votre application de manière approfondie avant de mettre en œuvre la mise à niveau dans l’environnement de production.

 

Comment passer de Laravel 9 à Laravel 10

Avec la sortie officielle de Laravel v10, la mise à jour de votre application Laravel actuelle vers la nouvelle version sera un jeu d’enfant avec Laravel 10.x Shift. Cet outil automatise la mise à jour de Laravel 9 vers Laravel 10, vous faisant gagner jusqu’à 2 heures de temps précieux. Il est important de noter que Laravel et Laravel 10.x Shift recevront des mises à jour régulières et que ceux qui utilisent Shift peuvent demander une nouvelle mise à jour si nécessaire.

Conditions requises

Pour mettre à jour votre application Laravel actuelle vers Laravel 10, quelques conditions essentielles doivent être remplies :

  • Votre application Laravel doit être sur Laravel 9 ou plus.
  • Votre serveur doit être équipé de PHP 8.1 ou d’une version plus récente.

Mises à jour de base

Le Shift automatise la plupart des mises à jour décrites dans le Guide de mise à jour de Laravel, notamment les suivantes :

  • Mises à jour des fichiers du projet principal de Laravel
  • Nouvelles méthodes pour les changements apportés aux interfaces
  • Ajout de conseils de type PHP à l’application Laravel
  • Conversion de la propriété $dates, obsolète, en $casts
  • Mise à jour des dépendances principales pour Laravel 10 et PHP 8.1
  • Suppression du typage redondant dans les DocBlocks PHP
  • Détection du code obsolète dans le code de l’application.

Mises à jour supplémentaires

En plus des mises à jour de base, le Shift fournit également des mises à jour supplémentaires mentionnées dans le Guide de mise à jour de Laravel, telles que :

  • Modernisation de la syntaxe PHP, y compris l’utilisation de l’opérateur null safe et des tableaux courts.
  • Possibilité d’appliquer votre style de code préféré
  • Adoption de la syntaxe tuple et des routes basées sur les classes
  • Conversion aux migrations anonymes
  • Changements automatisés requis pour PHPUnit 9
  • Transformation de l’accès aux propriétés Faker en appels de méthode
  • Mise à jour des fichiers de configuration pour refléter les versions de Laravel 10
  • Augmentation des contraintes de dépendance pour les packages populaires.

Mises à jour manuelles

Bien que le Laravel 10.x Shift vise à automatiser autant de mises à jour que possible, il peut y avoir des mises à jour qui ne peuvent pas être faites automatiquement. Dans ce cas, il détecte ces mises à jour et fournit des instructions détaillées sous forme de commentaires dans la pull request, décrivant les étapes nécessaires pour une implémentation manuelle.

Bien que le Shift s’efforce de détecter et d’automatiser les mises à jour pour les dépendances populaires, une implémentation manuelle peut toujours être nécessaire. Il est recommandé d’examiner le journal des modifications pour les dépendances et tout changement supplémentaire afin d’assurer une mise à jour réussie.

Conclusion

Nous espérons que cet article vous a donné un aperçu complet de la dernière version du framework. Si vous êtes un business owner et que vous hésitez à mettre à jour votre application Laravel existante vers Laravel 10, ou si vous envisagez un nouveau projet et que vous vous demandez si Laravel est la solution adaptée à vos besoins, nous vous recommandons vivement de faire appel à une entreprise spécialisée dans le développement Laravel telle qu’Ezway Technology. Notre équipe d’experts vous guidera à travers chaque étape du développement de votre application web, en réduisant le stress ou les inquiétudes que vous pourriez avoir.