Le framework Symfony est en constante évolution, comme beaucoup d’éléments dans le milieu du développement web. Efficience IT suit tous ces changements de très près, nous sommes à votre disposition pour migrer un de vos projets grâce à nos services. En attendant, nous vous avons préparé un guide complet qui peut vous aider dans la mise à jour de la version de votre projet Symfony.
Le terme de “migration” peut être anxiogène pour certains. Pas de panique, nous détaillerons, étape par étape, le cheminement de nos développeurs. Tout d’abord, sachez que Symfony est conçu pour être rétrocompatible, cela veut dire que tout est fait pour faciliter les changements de version !
Voici le calendrier de sortie des dernières versions. Aujourd’hui, nous avons dépassé la version 6.3 de Symfony.
Les conseils pour une bonne migration
Lire la documentation. Avant chaque mise à jour, des articles sont postés régulièrement sur le blog Symfony, afin de mettre au courant les utilisateurs des nouvelles fonctionnalités, et permettent d’appréhender des changements majeurs qui vont avoir lieu. En prenant de l’avance sur la mise à jour, vous pourrez, par exemple, vous séparer plus rapidement des éléments dépréciés qui n’auront plus leur place dans la version que vous visez.
Tester votre code existant. En amont de la migration que vous effectuez, il est essentiel de tester le code actuel pour s’assurer qu’il fonctionne correctement et qu’il ne comporte aucune anomalie. Symfony fournit des outils qui permettent justement de réaliser des tests. Mais, c'est PhpUnit, développé par Sebastian Bergmann, qui a conquis le cœur des développeurs. C’est un outil qui offre la possibilité de faire des tests unitaires. Ceux-ci garantissent que les unités individuelles du code source se comportent comme prévu. En complément, Behat offre des fonctionnalités s’ajoutant à celles de PhpUnit, afin de réaliser des tests fonctionnels. Le test manuel est également une option que nos développeurs utilisent, ils testent l’application pour voir si tout se passe bien.
Identifier les changements de code nécessaires. En ayant lu la documentation et effectué les tests, il vous reste à comparer les notes de mise à jour de Symfony pour identifier les changements à effectuer dans l’application. Celles-ci peuvent inclure des modifications au niveau des classes, des services, des configurations ou des templates.
Mettre à jour les dépendances Symfony. Sans cette étape, la migration n’est pas possible. Les dépendances sont des relations entre différents éléments d’un système informatique qui nécessitent une harmonie entre elles. Il est important de les mettre à jour régulièrement, et d’autant plus lors d’une migration.
Un bon vieux ‘composer update’ est de mise.
Vérifier les dépendances, bundles et packages tiers.
À côté de ça, il existe les dépendances tierces, celles-ci sont créées par des développeurs tiers. Elles sont souvent utilisées, mais lorsque le développeur abandonne sa dépendance, l’entretien ne se fait pas seul, il faut donc vérifier ces outils pour que votre développement ne soit pas impacté.
La majorité des projets demandent d’installer et d’utiliser les éléments créés par des personnes tierces. Il faut s’assurer qu’ils sont encore compatibles avec la version Symfony utilisée. Pour ce faire, consultez la documentation fournie pour identifier d’éventuelles modifications nécessaires.
Utiliser les outils de migration.
Le framework Symfony propose des outils spécifiques pour faciliter le processus de mise à jour. Cependant, le plus couramment utilisé est PHP Stan, développé par Ondřej Mirtes. Cet analyseur statique fonctionne, comme précisé dans son nom, pour le langage PHP. Il est conçu pour aider les développeurs PHP à détecter les erreurs potentielles. En utilisant des techniques d'inférence de type statique, PHPStan analyse le code PHP sans l'exécuter réellement, ce qui permet de détecter des erreurs de manière précoce.
Il existe aussi Rector, développé pour la communauté PHP, cet outil est exécutable sur n’importe quel projet PHP. Il vient faciliter une mise à niveau et la transformation automatisée du code. Rector utilise des règles prédéfinies, ce qui permet d’effectuer des modifications sécurisées et cohérentes. En plus de ça, il vient s’allier à PHPStan, pour optimiser son utilisation.
Procéder par étapes. En effet, si vous effectuez une migration pour projet d’une version très ancienne, le mieux est de procéder à des mises à jour incrémentielles. Évidemment, cette option prend énormément de temps et d’énergie, car de versions en versions, vous aurez à coder et décoder. Cela peut rassurer certains clients, mais c’est une démarche encore complexe, nous vous conseillons donc de passer à la version souhaitée et de s’y adapter.
Dans le meilleur cas, il est plus judicieux d’effectuer les mises à jour au fur et à mesure qu’elles arrivent pour ne pas se retrouver bloqué avec une version obsolète.
Le mot du dev : Certains de nos développeurs ont déjà eu à migrer des projets anciens vers de nouvelles versions. Dans ce cas, il vaut mieux repartir à "zéro", c'est-à-dire, recréer un projet dans la version la plus récente de Symfony, puis adapter le code legacy aux nouvelles façons de faire. Dans le cas d'une migration avec une version majeure d'écart (5.4 -> 6.x), perçue comme "plus simple", il suffit de lire la doc sur les différences entre les deux versions. Il n’y aura pas trop de gros changement à faire qui nécessite de revoir toute l’application.
Effectuer des tests approfondis. On arrive à la fin de la migration, mais attention, l’étape des tests est essentielle. Elle permet de s’assurer que toutes les fonctionnalités de l’application sont opérationnelles. On parle ici de tests unitaires, fonctionnels et d’intégration, afin de détecter d’éventuelles erreurs.
Surveiller les performances. Cette étape concerne l’équipe d’exploitation, ils sont chargés de vérifier comment l’application se comporte en production. Les mises à jour effectuées peuvent avoir un impact sur les performances.
Quels sont les avantages d’une migration ?
Il faut savoir que Symfony effectue régulièrement des changements de versions, il en existe 3 types :
La version corrective : Elle est publiée pour corriger les bugs, des potentiels problèmes de sécurité, ou encore des erreurs d’une version majeure précédente. La version corrective est identifiable par un numéro de version incrémenté de version mineure. Par exemple, Symfony 5.0, peut devenir Symfony 5.0.2, suite aux corrections. Aucune nouvelle fonctionnalité n’est introduite à ce niveau.
La mise à jour mineure : Celle-ci se réfère à une nouvelle version d'une branche majeure de Symfony. Elle introduit de nouvelles fonctionnalités mineures, des améliorations et des corrections de bugs. Elle est compatible avec les versions précédentes de la même branche majeure, en clair si vous effectuez une mise à jour de votre application Symfony, aucune modification majeure ne sera à effectuer. Ces mises à jour mineures ont lieu deux fois par an, une en mai et une en novembre. La dernière en date est Symfony 6.3, vous pouvez retrouver les principales nouveautés dans cet article.
La mise à jour majeure : Elles sont publiées tous les deux ans environ. Celles-ci introduisent des changements significatifs, notamment des nouvelles fonctionnalités, des améliorations importantes, des modifications ou suppressions des éléments dépréciés. Une documentation est disponible quelques mois en amont pour que vous puissiez vous renseigner sur les modifications à effectuer dans le code de l’application.
Chaque version a son importance dans la maintenance de vos projets Symfony. Les migrations permettent de supprimer les dépréciations et d’implémenter les nouveautés. Tout cela vous offre un maintien de votre projet à jour sur le long terme.
Vous avez maintenant une idée plus précise de ce qu’il se passe lorsque l’on vous parle de migration, Efficience IT est là pour vous accompagner dans cette démarche, contactez-nous pour plus d'infos !