Réussir sa migration Symfony : à quoi faut-il penser ?

Mettre à jour sa stack applicative, c'est assurer la stabilité et la sécurité de ses applications. Il est donc important de faire le suivi des mises à jour pour ne pas se retrouver bloqué à cause de l'accumulation de la dette technique. Sur Symfony, les versions majeures (X.0.0) sont programmées tous les 2 ans, et les versions mineures (1.X.0) sont programmées tous les 6 mois, en mai et en novembre. Chaque version arrive avec son lot de nouveautés qu'il est important de prendre en compte. Les dates de mises à jour étant connues, l'intégration à des Roadmap est alors simplifiée. Mais à quoi faut-il penser lors de ces migrations ?
thomasC.jpg
Thomas CHABOUDMis à jour le 14 Mai 2024
Illustration de l'article d'AXOPEN sur ce à quoi il faut penser pour réussir sa migration Symfony

Les méthodes dépréciées suite à une migration Symfony

Avec SymfonyFramework PHP permettant de développer des applications web., chaque version majeure supprime les méthodes et les classes dépréciées dans les versions précédentes de ces packages. Ce qui signifie que si l'on utilise encore une de ces méthodes ou classes, il faudra la remplacer. Pour cela, 2 options :

  • Soit une autre méthode existe pour la remplacer
  • Soit la dépendance ou la classe complète est dépréciée et doit être remplacée

Dans le second cas, les travaux seront plus lourds, il faut donc bien vérifier cela en amont. Une première méthode simple est d'utiliser la commande :

composer outdated

qui liste les mises à jour disponibles pour les dépendances du projet, et indique celles qui ne sont plus maintenues, avec son alternative si elle est définie.

À noter qu'il n'y a aucun breaking changes entre les versions mineures de Symfony, seules les versions majeures peuvent nécessiter des changements de classes ou de dépendances.

Cibler les LTS de Symfony

Les LTS, pour Long-Term Support, sont des versions maintenues plus longtemps que les autres. De nombreux langages et frameworks utilisent ce système afin d'éviter aux utilisateurs de devoir faire des mises à jour trop souvent.

En Symfony, les LTS sont facilement identifiables, car il s'agit de la version (X.4.X) de chaque version majeure et correspond à la dernière version mineure avant la prochaine version majeure.

Sur ces versions, la maintenance des bugs est assurée pour 3 ans après leur déploiement, et la correction des problèmes de sécurité pour 4 ans. À titre de comparaison, une version mineure standard de Symfony est maintenue pour 8 mois, à la fois pour les bugs et pour les correctifs de sécurité.

Il n'est donc pas nécessaire de cibler systématiquement la dernière version, on privilégiera toujours la dernière LTS. À l'heure où nous écrivons cet article, la dernière LTS de Symfony est donc la 6.4, et la prochaine, prévue pour 2025, sera la 7.4.

Mises à jour Symfony/PHP

Les mises à jour de PHP devront être réalisées en parallèle de la migration de Symfony.

Chaque version de Symfony est compatible avec un ensemble de versions de PHPLangage de programmation s’exécutant côté serveur et permettant la création dynamique de pages web ou d'APIs.. La version minimale nécessaire au fonctionnement d'une version majeure de Symfony est définie par la core team du framework.

Tout au long de la durée de vie du support de chaque version de Symfony, toutes les versions publiées de PHP, y compris les nouvelles versions majeures, seront prises en charge. De cette façon, la version maximale prise en charge de PHP pour une version Symfony maintenue est la dernière version disponible publiquement.

Lors de la migration d'un projet Symfony, si la version de départ a plusieurs années de retard, il ne sera pas forcément possible de passer directement à la dernière version de PHP. Il faut donc prendre en considération à la fois la dernière version de Symfony qu'il est possible d'atteindre avec votre version actuelle de PHP et la dernière version de PHP qu'il est possible d'atteindre avec votre version de Symfony.

Nous vous suggérons de d'abord mettre à jour Symfony, dans la limite de votre version de PHP, puis monter la version de PHP et continuer les montées de version de Symfony, et ainsi de suite jusqu'à atteindre la dernière version de PHP et la dernière LTS de Symfony.

À noter que les versions de PHP ne possèdent pas de système de LTS, mais un support constant pour chaque version (2 ans de correction de bugs et 2 années additionnelles pour la correction des problèmes de sécurité).

Challenger le besoin : aller au-delà de la migration Symfony

Effectuer une migration est aussi l'occasion de revoir la pertinence de certains outils, dépendances ou méthodes en place dans l'application.

Est-ce que ma dépendance est réellement utile et ne pourrait pas être remplacée par quelque chose de plus performant ou carrément supprimée ? Est-ce que mes requêtes sont correctement construites et ne pourraient pas être améliorées ? Est-ce que mon modèle de données est toujours pertinent ?

Toutes ces questions doivent être posées à ce moment-là, car c'est l'occasion de simplifier votre code, de gagner en performance et en lisibilité !

Faire de la veille concernant les améliorations et nouveautés de Symfony

Au-delà des dépréciations, Symfony apporte de nouvelles bonnes pratiques et de nouveaux outils pour gagner en performance. Il est donc important de faire de la veille informatique pour suivre les nouveautés de chaque version afin de pouvoir les intégrer au fil de l'eau.

Parmi les grandes nouveautées des dernières versions majeures, on trouve :

  • La simplification des développements avec Symfony Flex et les Symfony Recipes
  • Amélioration du profiler pour simplifier le debuggage
  • Plus de robustesse dans le typage
  • L'ajout de Scheduler, de Sanitizer HTML
  • L'amélioration de la sécurité
  • Plus de légèreté et de meilleures performances

Et beaucoup d'autres nouveautés...

Concernant la sécurité, il s'agit d'un domaine qui évolue très vite et change constamment. Il est par exemple très courant d'avoir dans nos applications une partie authentification, et les méthodes pour le faire évoluent sans cesse, il s'agit donc d'un point à prendre en considération.

Conclusion

En conclusion, sans surprise, nous conseillons fortement le suivi des mises à jour de vos applications Symfony, pour la sécurité, la stabilité et la performance. Les mises à jour de Symfony étant très planifiées, il est facile de pouvoir les intégrer dans les développements.

Nous pouvons également vous accompagner dans cette migration ou réaliser un audit de code afin de vous permettre d'estimer la dette technique de vos applications.