Une ancienne version de Symfony ne reçoit plus de correctifs de sécurité et bloque peu à peu les mises à jour de PHP et des dépendances. La mise à niveau se fait progressivement, version majeure par version majeure, en corrigeant les dépréciations avant chaque saut. C’est plus sûr et souvent plus rapide qu’une réécriture.
Ne pas sauter les étapes
Passer directement d’une très ancienne version à la dernière multiplie les erreurs en même temps. On avance d’une version majeure à la suivante, en s’appuyant sur les versions de support à long terme (LTS), celles qui se terminent en .4.
Commencer par la dernière version mineure
Avant de changer de version majeure, l’application passe à la dernière version mineure de sa branche. Cette version signale toutes les fonctionnalités qui disparaîtront à la version suivante.
Corriger les dépréciations
Les dépréciations sont visibles dans le profiler Symfony, les journaux et la sortie des tests. Une fois toutes corrigées, le passage à la version majeure suivante devient en grande partie mécanique.
Mettre à niveau PHP et les dépendances
Chaque version majeure exige une version minimale de PHP, par exemple PHP 8.2 pour Symfony 7. Il faut aussi vérifier que chaque bundle tiers existe pour la version cible, et prévoir un remplacement pour ceux qui ne sont plus maintenus.
S’aider des bons outils
- Rector automatise une partie des modifications de code
- PHPStan repère les erreurs avant l’exécution
- la commande
composer recipes:update met à jour les fichiers de configuration
composer why-not explique ce qui bloque une montée de version
Tester avant de déployer
Les tests automatisés et une préproduction identique à la production permettent de vérifier les parcours critiques à chaque étape. Sans tests, il faut commencer par couvrir les fonctionnalités essentielles.
→ Audit Symfony : évaluer le code avant une mise à niveau
→ Guide : mise à jour PHP obligatoire
→ Reprise de projet technique