Gestion des mises à jour d’un projet Symfony : Guide et bonnes pratiques

Le framework Symfony continue de s’améliorer avec chaque nouvelle version, et la sortie de la version 7.1 ne fait pas exception. Cette dernière version apporte des fonctionnalités nouvelles et des améliorations qui rendent le développement web encore plus efficace et agréable.
Dans cet article, nous allons voir pourquoi il est important de mettre à jour son application à chaque nouvelle version mineure, puis nous présenterons un exemple concret de migration de la version mineure 7.0 vers la version la plus récente i.e 7.1. Nous mettrons également en lumière le rôle important des recettes, utilisées par le plugin Symfony Flex, pour simplifier l’installation et la configuration des bundles dans nos projets.

L’importance de la mise à jour d’une version mineure

La mise à jour d’une application Symfony à chaque nouvelle version mineure est essentielle. Elle facilite considérablement la migration vers une version majeure ultérieure. Une nouvelle version mineure ne casse généralement pas la compatibilité avec la version actuelle du projet. Le code existant continue de fonctionner même si certaines parties peuvent être marquées comme dépréciées. Lors de la sortie d’une version majeure, toutes les fonctionnalités et caractéristiques dépréciées sont supprimées.
Ainsi, en upgradant notre projet aux dernières versions mineures, nous aurons déjà corrigé les dépréciations et la migration vers une nouvelle version majeure sera sans suprises. Le processus de mise à jour vers une nouvelle version mineure reste simple, il suffit de mettre à jour les différentes librairies Symfony via composer, d’identifier et de corriger les éventuelles dépréciations dans le code et enfin de mettre à jour les recettes des bundles si nécessaire.

Mise à jour des bundles

Pour mettre à jour les bundles, nous commençons par modifier le fichier composer.json en remplaçant toutes les occurrences de la version 7.0.* par 7.1.* pour chaque librairie commençant par symfony/ et pour le bloc extra en bas du fichier.

Une fois les modifications apportées au fichier composer.json, nous utilisons Composer pour télécharger et installer la nouvelle version des bundles.
La commande à exécuter est la suivante :

Si la commande génère des erreurs de dépendance, il faut la relancer avec l’option –with-all-dependencies.

Vérification et correction des dépréciations

Après la mise à jour, nous devons identifier les dépréciations dans notre code et les corriger. Les dépréciations signalent les fonctionnalités qui seront supprimées dans les futures versions majeures. Pour trouver facilement les codes dépréciés, nous pouvons utiliser la debug toolbar de Symfony qui liste les dépréciations dans l’onglet « Logs » et facilite ainsi leur correction.

En guise d’exemple, nous avons utilisé l’attribut TaggedIterator pour injecter un ensemble de services dans un de nos controllers. Symfony nous indique clairement que cette classe est dépréciée et que donc nous devons la remplacer par AutowireIterator.
Pour obtenir plus d’informations sur les dépréciations et les changements à prendre en compte pour la mise à jour, consulter le document UPGRADE-7.1.md.

Mise à jour des recettes

Les recettes Symfony facilitent l’installation et la gestion des bundles. Elles sont gérées par Symfony Flex, un plugin qui automatise ce processus.
Il existe les recettes officielles pour les bundles Symfony et les recettes contrib pour les bundles tiers.
Chaque recette de bundle contient un fichier manifest.json avec des instructions d’installation et de configuration. Lors de l’installation d’un bundle, Symfony Flex utilise ce fichier pour installer et configurer automatiquement le bundle.
Pour mettre à jour les recettes des bundles, nous utilisons la commande suivante :

Cette commande liste les bundles dont les recettes doivent être mises à jour et propose de les mettre à jour. Noter qu’il s’agit d’une commande composer, issue du plugin Symfony Flex.

Nota Bene : Si des erreurs apparaissent après la mise à jour, penser à supprimer le cache.

En suivant ces étapes, nous assurons que notre projet reste à jour avec les dernières améliorations et corrections de bugs. La mise à jour régulière d’un projet Symfony à chaque nouvelle version mineure est une pratique essentielle pour maintenir la qualité et la performance de notre application. Cela prépare également notre projet pour une transition en douceur vers les futures versions majeures.

Retour en haut