Comment réussir la montée de version d’une application Symfony ?

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. »

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 :

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” »

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é »

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. »

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… »

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 »

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. »

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. »

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. »

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. »

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. »

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. »

« Pour bien réussir la montée de version Symfony, la clé est de le faire assez régulièrement »

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 »

A5SYS est à vos côtés pour anticiper les évolutions techniques et garantir la sécurité de votre application Symfony : Contactez-nous

Photo de profil de Jean-Charles Montgobert
Jean-Charles Montgobert
Développeur intégrateur web chez A5SYS
Partager par e-mail
Partager sur LinkedIn
Partager sur Facebook

Table des matières

Vous aimerez aussi