Guide de Migration de Laravel 10 à Laravel 11

La migration d’une version à une autre d’un framework de développement peut parfois être une tâche délicate, surtout quand il s’agit d’une plateforme aussi robuste et largement utilisée que Laravel. Avec la sortie de Laravel 11, de nombreuses nouvelles fonctionnalités et améliorations ont été introduites, rendant cette mise à jour attrayante pour les développeurs désireux de tirer parti des dernières avancées. Cet article vous guidera à travers les étapes clés et les considérations importantes pour migrer avec succès de Laravel 10 à Laravel 11.

Préparatifs de Migration

Avant de commencer le processus de mise à jour, il est crucial de s’assurer que votre environnement de développement est prêt. Cela inclut:

– Sauvegarde

Assurez-vous de faire une sauvegarde complète de votre application et de votre base de données. En cas de problème, cela vous permettra de revenir à une version fonctionnelle.

– Documentation

Lisez attentivement la documentation officielle de Laravelconcernant la migration. Laravel fournit un guide de migration détaillé couvrant les changements majeurs et mineurs.

– Dépendances :

Vérifiez la compatibilité de toutes les dépendances tierces avec Laravel 11. Vous devrez peut-être également mettre à jour certaines de ces dépendances pour assurer la compatibilité.

Modifications et Nouveautés

Laravel 11 introduit plusieurs nouvelles fonctionnalités, améliorations et changements par rapport à la version 10. Voici quelques-unes des modifications les plus significatives :

Support PHP : Laravel 11 requiert PHP 8.0 ou supérieur. Assurez-vous que votre environnement d’hébergement est à jour.
Améliorations des tests : Laravel continue d’améliorer ses fonctionnalités de test, offrant plus de flexibilité et de précision dans les tests d’applications.
Route Caching : Les améliorations apportées au cache des routes rendent les applications plus rapides et plus réactives.
Queue System : Des améliorations significatives ont été apportées au système de queue, facilitant la gestion des tâches en arrière-plan.
Eloquent ORM : Des fonctionnalités supplémentaires et des améliorations de performance ont été apportées à Eloquent, le système ORM de Laravel.

Processus de Migration

La migration proprement dite peut généralement se faire en suivant les étapes ci-dessous :

1. Mise à jour de Composer : Modifiez la version de Laravel spécifiée dans votre fichier `composer.json` pour ` »laravel/framework »: « ^11.0″`.
2. Exécution de Composer Update : Exécutez `composer update` dans votre terminal pour mettre à jour les dépendances. Cela peut prendre un certain temps en fonction de la taille de votre projet.
3. Correction des Dépréciations : Corrigez tous les codes obsolètes ou dépréciés qui ne sont plus supportés dans Laravel 11. La documentation de Laravel et les logs d’erreur seront vos meilleurs alliés pour identifier ces problèmes.
4. Testez Votre Application : Testez soigneusement votre application pour identifier tout problème ou bug. Cela inclut des tests manuels et automatisés.
5. Mise à jour des Dépendances Front-end : Si vous utilisez Vue.js avec Inertia.js, assurez-vous que ces packages sont également mis à jour pour être compatibles avec les nouvelles modifications.

Conclusion

La migration vers Laravel 11 peut sembler intimidante au premier abord, mais en suivant une approche méthodique et en tirant parti des ressources disponibles, le processus peut être simplifié. La clé est de préparer soigneusement votre environnement, de suivre les recommandations officielles et de tester votre application de manière exhaustive. Avec Laravel 11, vous bénéficierez d’une application plus performante, sécurisée et dotée des dernières innovations du framework.

Les soucis que j’ai rencontré

Mise a jour de Carbon

J’utilisais une fonction de carbon qui permettait de transformer une string en Carbon Datetime.

Copy to Clipboard

Désormais, cette date est caster et l’utilisation de Carbon est gérée en amont et donc j’ai du la supprimer car cette fonction n’autorise pas de transformer un objet Carbon en un autre objet Carbon.

Les migrations

Lors de la modification d’une colonne, vous devez désormais inclure explicitement tous les modificateurs que vous souhaitez conserver dans la définition de la colonne après sa modification. Tous les attributs manquants seront supprimés. Par exemple, pour conserver les attributs unsigneddefaultet comment, vous devez appeler chaque modificateur explicitement lors de la modification de la colonne, même si ces attributs ont été attribués à la colonne lors d’une migration précédente.

Copy to Clipboard
Copy to Clipboard

Change de colonnes dans les migrations

Lors de la modification d’une colonne, vous devez désormais inclure explicitement tous les modificateurs que vous souhaitez conserver dans la définition de la colonne après sa modification. Tous les attributs manquants seront supprimés. Par exemple, pour conserver les attributs unsigneddefaultet comment, vous devez appeler chaque modificateur explicitement lors de la modification de la colonne, même si ces attributs ont été attribués à la colonne lors d’une migration précédente.

Pour ce qui concerne mon code assez early et donc non déployé encore j’ai plus simplement supprimer les migrations de change et mis a jour les migrations de créations.