Complet, flexible et robuste, Symfony est aujourd’hui l’un des frameworks les plus utilisés au monde. Toutefois, sa technologie évolue constamment, avec des mises à jour régulières, qui apportent parfois des changements majeurs. Quels sont les enjeux d’une montée de niveau Symfony ? Comment mettre toutes les chances de son côté pour réussir cette migration ? Jean-Charles Montgobert, développeur intégrateur web chez A5SYS, nous apporte son éclairage.
Symfony : un framework en constante évolution
Symfony est un framework PHP qui rassemble de nombreux composants conçus pour faciliter et réduire le temps de développement des sites et applications web.
« Ce framework permet d’obtenir une structure de code pour créer des applications. Il met à disposition différentes fonctionnalités qui peuvent être ajoutées en fonction des besoins. »
Jean-Charles Montgobert, développeur intégrateur web chez A5SYS
Depuis la sortie de sa première version en 2005, Symfony n’a cessé d’évoluer jusqu’à devenir l’un des frameworks les plus populaires. Et l’outil continue de recevoir des mises à jour régulières, selon un calendrier précis :
- Tous les 6 mois est publiée une version mineure, contenant des corrections de bugs et quelques nouvelles fonctionnalités.
- Tous les 2 ans sort une version majeure, qui apporte de véritables changements de rupture par rapport à la version précédente.
Chaque version majeure comme Symfony 5, 6 ou 7 bénéficie d’une période de maintenance limitée. Après cette période, des correctifs de sécurité continuent d’être appliqués, permettant de prolonger son utilisation.
Mais, passé ce délai, une application fonctionnant sur une ancienne version n’est plus maintenue officiellement.
« Il ne faut pas louper le coche en cas de changement de version majeure de Symfony” »
Jean-Charles Montgobert, développeur intégrateur web chez A5SYS
Anticipez les évolutions techniques de votre application Symfony : Découvrez notre offre de maintenance adaptative
Pourquoi est-il important de maintenir à jour sa version de Symfony ?
Suivre le rythme des montées de version est avant tout un gage de sécurité. En effet, une mise à jour régulière est essentielle pour corriger les failles de sécurité, qui ne demandent qu’à être exploitées par les cybercriminels.
« Un code solide et bien à jour permet de réduire les risques de sécurité »
Jean-Charles Montgobert, développeur intégrateur web chez A5SYS
Migrer vers une version plus récente de Symfony permet aussi d’accéder aux dernières améliorations qui ont été apportées.
« Ces améliorations concernent aussi bien la performance du framework que sa compatibilité avec d’autres outils, comme les dernières versions des navigateurs web par exemple. »
Jean-Charles Montgobert, développeur intégrateur web chez A5SYS
En effet, chaque version de Symfony s’accompagne de nouvelles fonctionnalités apportant une réelle valeur ajoutée. Symfony 5 avait par exemple introduit le support de PHP 8 et le composant Notifier, tandis que Symfony 6 améliorait le système de formulaires et ajoutait le composant Runtime. Symfony 7, quant à lui, intègre le support exclusif de PHP 8.2+, la création simplifiée d’APIs RESTful et GraphQL ou encore une amélioration de Symfony UX…
Négliger les mises à jour engendre donc un risque majeur : accumuler une dette technique et se retrouver en retard par rapport aux standards actuels.
Pour illustrer cette situation, Jean-Charles Montgobert cite l’exemple d’une entreprise qui utilisait la version 1 de Symfony, alors qu’elle était dépassée depuis plusieurs années.
« Pour passer ne serait-ce qu’à la version 2 de Symfony, explique-t-il, il était nécessaire de refaire toute l’application, car les systèmes utilisés étaient obsolètes. C’est le risque de l’utilisation prolongée d’une ancienne version : il y a beaucoup trop de mises à jour à faire, il faut donc revoir la quasi-totalité du code… »
Jean-Charles Montgobert, développeur intégrateur web chez A5SYS
Bien entendu, un tel retard technique a des répercussions importantes sur le coût et la durée du projet de migration, qui peut alors s’étaler sur plusieurs années. Sans oublier les failles de sécurité potentiellement critiques.
« Une mise à jour régulière se fait rapidement : mieux vaut monter en version petit à petit plutôt que d’attendre plusieurs années et faire de nombreux changements d’un coup »
Jean-Charles Montgobert, développeur intégrateur web chez A5SYS
Comment préparer sa montée de version Symfony ?
Si l’importance d’une mise à jour régulière de Symfony ne fait aucun doute, encore faut-il préparer correctement cette montée de niveau.
« D’abord, il faut passer en revue tous les composants que l’application actuelle utilise. Symfony comporte ce que l’on appelle des bundles, qui ont chacun une durée de vie limitée. Il est donc essentiel de vérifier que chaque composant est bien compatible avec la nouvelle version de Symfony. »
Jean-Charles Montgobert, développeur intégrateur web chez A5SYS
Auditez votre application Symphony : Découvrez notre offre
Il peut être nécessaire d’effectuer des modifications, voire de remplacer un bundle par un autre, pour réussir une montée de version. Dans certains cas, au contraire, il n’y pas ou peu de changements à prévoir.
Il est donc primordial d’anticiper la complexité de la mise à jour. Par exemple, s’il faut revoir l’intégralité du code d’un composant pour pouvoir changer de version, l’opération peut devenir assez chronophage.
« Un outil comme Composer nous permet de voir les migrations à effectuer pour les différents bundles et d'identifier les points de vigilance. Ensuite, nous vérifions en détail que tout est correct et nous listons les impacts de la migration sur le code de l’application. »
Jean-Charles Montgobert, développeur intégrateur web chez A5SYS
Quelles sont les étapes clés pour migrer une application Symfony vers une nouvelle version ?
Même bien préparée, une montée de niveau de Symfony doit s’effectuer en respectant certaines étapes.
La consultation de la documentation fournie dans Symfony constitue un prérequis incontournable.
« La documentation permet d’anticiper les dépréciations, c'est-à-dire du code qui ne sera plus utilisé dans la version supérieure ou des fonctionnalités qui vont changer, par exemple. Il faut anticiper les futures mises à jour et régler ces dépréciations avant de changer de version. »
Jean-Charles Montgobert, développeur intégrateur web chez A5SYS
Par la suite, il convient de mettre à jour les composants Symfony, puis tous les autres composants divers et variés qui ne sont pas liés uniquement à ce framework.
« Il faut aussi faire une mise à jour des recettes (recipes), c’est-à-dire une mise à jour des fichiers de configuration. Cela se fait automatiquement, mais il peut y avoir des conflits : il faut donc vérifier chaque modification pour que cela n’ait pas d’impact sur l’application. Enfin, il faut mettre à jour le code en fonction de ces changements. »
Jean-Charles Montgobert, développeur intégrateur web chez A5SYS
Tout cela en effectuant des tests réguliers, qui garantissent le succès de la migration.
« En tant que développeurs, nous testons en permanence chaque changement pour être sûrs que cela ne pose pas de problème et que l'application fonctionne bien. Nous faisons ensuite la migration sur un serveur de test en interne, puis sur un autre serveur de test chez le client. Enfin, nous continuons de faire des tests pendant la mise en production, afin d’éviter toute mauvaise surprise. »
Jean-Charles Montgobert, développeur intégrateur web chez A5SYS
Des tests d’application peuvent aussi être effectués :
« Pour cela, nous nous basons sur des scénarios d’utilisation de l’app, et nous vérifions qu’il n’y a pas d’erreur pour ces différents cas d’usage. Selon les cas, nous pouvons aussi réaliser des tests unitaires au niveau du code. »
Jean-Charles Montgobert, développeur intégrateur web chez A5SYS
« Pour bien réussir la montée de version Symfony, la clé est de le faire assez régulièrement »
Jean-Charles Montgobert, développeur intégrateur web chez A5SYS
S’il est possible de faire l’impasse sur une version mineure, le passage vers une nouvelle version majeure ne doit pas être repoussé trop longtemps, au risque de s’exposer à des problèmes de sécurité et d’accumuler une dette technique considérable.
Toutefois, cette migration nécessite une préparation minutieuse, avec parfois des modifications importantes à apporter à l’application. L’accompagnement d’un prestataire spécialisé peut donc s’avérer très utile pour anticiper les obsolescences, garantir la sécurité et la stabilité de votre système.
« Symfony fait partie de notre socle de travail : c’est un framework que nous maîtrisons depuis les débuts et que nous utilisons quotidiennement »
Jean-Charles Montgobert, développeur intégrateur web chez A5SYS
A5SYS est à vos côtés pour anticiper les évolutions techniques et garantir la sécurité de votre application Symfony : Contactez-nous
