Refonte SaaS legacy Symfony

Modernisez votre SaaS Symfony vieillissant sans tout réécrire. Migration progressive par Strangler Pattern, automatisation Rector, montée de version PHP et Symfony LTS, production préservée, dette technique éliminée.

Pourquoi refondre un SaaS legacy Symfony ?

Vous éditez un SaaS B2B en production depuis 5, 8 ou 12 ans. Le produit tourne, vos clients paient, mais chaque évolution devient un combat. Les déploiements vous stressent, les montées de version PHP sont repoussées d'année en année, et votre Symfony 3, 4 ou 5 accumule une dette technique qui pèse sur vos marges. La question n'est plus de savoir si vous devez refondre, mais comment le faire sans casser la production.

Une refonte SaaS legacy Symfony ne consiste pas à tout réécrire depuis zéro. C'est une démarche progressive, qui consolide l'existant tout en migrant pièce par pièce vers une stack moderne (Symfony en version LTS, Doctrine ORM 3, Twig 3, AssetMapper). L'objectif : retrouver de la vélocité de développement, sécuriser le produit face aux vulnérabilités OWASP Top 10, et préparer le SaaS aux 10 prochaines années sans interrompre l'activité commerciale.

Je vous accompagne sur ce type de chantier en tant que développeur Symfony solo, depuis les Ardennes. Pas d'équipe offshore, pas de turn-over consultant, un interlocuteur unique qui comprend votre code legacy et garde la maintenance opérationnelle pendant toute la durée de la refonte de votre application SaaS sur-mesure.

Les signaux qui indiquent qu'il faut refondre votre SaaS legacy

Une refonte n'est jamais un caprice technique. Elle se décide quand plusieurs signaux convergent et menacent la pérennité du produit ou la sécurité des données clients.

Version PHP ou Symfony non maintenue

Vous tournez encore sur PHP 7.x ou Symfony 3 / 4 / 5 ? Ces versions ne reçoivent plus de correctifs de sécurité. Chaque mois passé augmente votre exposition aux failles connues et bloque l'adoption de bibliothèques modernes.

Deprecations Doctrine accumulées

Les logs débordent de deprecation notice Doctrine, Twig ou Symfony. Le code marche encore, mais chaque montée mineure devient un champ de mines. La dette technique se paie en heures de debug.

Webpack Encore figé

Votre front est verrouillé sur une vieille version de Webpack Encore, avec des dépendances npm obsolètes. Le passage à AssetMapper (la voie recommandée par Symfony depuis la 6.3) est repoussé indéfiniment.

Tests inexistants ou cassés

Pas de couverture PHPUnit, ou une suite qui n'a pas tourné depuis 2 ans. Chaque livraison repose sur de la recette manuelle. Vos développeurs n'osent plus toucher au cœur métier.

Time-to-market dégradé

Une fonctionnalité qui prenait 3 jours en prend désormais 3 semaines. Les bugs collatéraux explosent. Vos équipes produit s'agacent, vos commerciaux perdent des deals faute de roadmap tenable.

Performance en chute libre

Les pages mettent 4 à 8 secondes à se charger, les requêtes SQL explosent en N+1, et les Core Web Vitals de votre SaaS Symfony sont au rouge. Vos utilisateurs partent en silence.

Notre méthode : Strangler Pattern + Rector

Refondre un SaaS legacy en mode big bang (tout réécrire, basculer en une nuit) est la pire des stratégies. Ce schéma a tué plus de projets qu'il n'en a sauvé. Chez ARDNTECH, j'applique le Strangler Pattern popularisé par Martin Fowler : on enveloppe l'existant, on extrait progressivement les modules, et on retire le code legacy au fur et à mesure.

1. Audit technique et cartographie de la dette

La première étape consiste à mesurer l'existant : version PHP/Symfony, qualité du code via PHPStan, dépendances obsolètes via composer outdated, points chauds de performance, couverture de tests. Cet audit livre une carte précise de la dette et un plan de migration par paliers.

2. Sécurisation du socle (tests, CI, monitoring)

Avant de toucher au code legacy, on met en place le filet de sécurité : tests caractérisation sur les parcours critiques, pipeline CI GitLab ou GitHub Actions, monitoring infrastructure. Sans ce socle, toute refonte avance à l'aveugle.

3. Migration automatisée avec Rector

Rector applique des règles de transformation de code (montée de version PHP, deprecations Doctrine, modernisation Symfony) sur l'ensemble du projet en quelques heures, là où une équipe mettrait des semaines à la main. Couplé à PHPStan niveau 8 et au CS Fixer, c'est l'outil qui transforme une refonte risquée en chantier industrialisable.

4. Extraction des modules par bounded context

Les briques métier identifiées comme prioritaires sont réécrites dans le périmètre cible (Symfony LTS, Doctrine 3, MariaDB ou PostgreSQL), puis branchées en parallèle de l'ancien code via un routeur applicatif. Quand le nouveau module est stable, l'ancien est supprimé. Production jamais interrompue.

5. Migration des données et bascule

Les schémas Doctrine évoluent via migrations versionnées, les données sont rétro-compatibles le temps de la coexistence des deux modèles. La bascule finale d'un module se fait sur un feature flag, réversible en 10 secondes en cas de souci.

Cas concret : migration Symfony 6 vers 7 chez un éditeur SaaS B2B

Un éditeur SaaS B2B du secteur télécom (facturation et gestion de parc opérateurs) m'a contacté avec une application Symfony 6 stable mais figée. La promesse d'évolution était bloquée : le passage à Symfony 7 traînait depuis 18 mois, faute de temps pour s'y mettre proprement.

Le diagnostic a révélé les points classiques de ce type de migration : annotations Doctrine non migrées en attributs PHP 8, services configurés en autowire: false, contrôleurs étendant un BaseController maison à refactorer, dépendances Webpack Encore à basculer vers AssetMapper, et plusieurs bundles abandonnés à remplacer.

La méthode appliquée :

Palier Action Durée
1Audit PHPStan niveau 5, cartographie deprecations, mise en place CI1 semaine
2Migration annotations vers attributs PHP 8 via Rector3 jours
3Montée Symfony 6.4 LTS, résolution deprecations1 semaine
4Bascule Webpack Encore vers AssetMapper4 jours
5Montée Symfony 7, ajustements finaux, PHPStan niveau 81 semaine
6Recette client, déploiement progressif avec feature flags1 semaine

Bilan : Symfony 7 en production, build front divisé par deux en temps de compilation, suite PHPUnit passée de 12 % à 64 % de couverture sur les modules critiques, et surtout, équipe interne autonome pour poursuivre l'effort. La production n'a jamais été coupée plus de 2 minutes (fenêtre de bascule planifiée le dimanche soir).

Pourquoi un solo expert Symfony plutôt qu'une agence ?

Une refonte SaaS legacy demande de la continuité, de la rigueur méthodologique et une connaissance fine du framework. C'est précisément ce qu'une agence à turn-over élevé peine à offrir, et ce qu'un solo expert garantit par construction.

Critère Agence classique Solo expert ARDNTECH
InterlocuteurChef de projet + 2 à 4 développeurs rotatifsUn seul, du devis à la mise en production
Connaissance du legacyOnboarding répété à chaque turn-overCapitalisée sur toute la durée du chantier
Coût indirectMarge agence, frais de structure, refacturationPas de marge intermédiaire
RéactivitéCycle ticket, validation hiérarchiqueDécision et action dans la même demi-journée
Maintenance pendant la refonteÉquipe séparée, friction de coordinationMême personne, même contexte

Pour aller plus loin sur les choix d'architecture cible, consultez le guide architecture multi-tenant SaaS : isolation et mutualisation, ainsi que la trame de cahier des charges SaaS sur-mesure pour cadrer le périmètre de refonte. Côté sécurité, l'audit cybersécurité TPE sert souvent de point d'entrée avant le chantier de refonte.

Chaque chantier de refonte est dimensionné après un échange initial gratuit de 30 minutes pour comprendre votre stack actuelle, vos contraintes business et vos priorités. Le scope et le planning sont ensuite formalisés en devis personnalisé, sans engagement.

Notre approche

Analyse de vos besoins

Nous prenons le temps de vous connaître et de comprendre vos besoins pour vous offrir la meilleure solution à votre projet

Développement

Nous travaillons en étroite collaboration avec vous pour concevoir et développer votre projet en respectant les normes et les meilleurs standards de qualité

Livraison et suivi

Nous assurons la livraison et le suivi de votre projet pour garantir votre satisfaction et votre réussite sur le long terme

Nos engagements

Développer du logiciel sur-mesure, c'est bien. Le faire avec un impact positif sur la planète et une relation équitable avec nos clients, c'est notre raison d'être.

Hébergement écoresponsable, tarification transparente co-construite avec vous, code optimisé pour durer : nous refusons de choisir entre performance technique et responsabilité. Chez ARDNTECH, les deux vont de pair.

Nos autres services

Votre projet mérite un hébergement à la hauteur : serveurs éco-énergétiques, monitoring continu et maintenance proactive.

Découvrez notre service de développement

Votre projet SaaS mérite un hébergement à la hauteur : serveurs éco-énergétiques, monitoring continu et maintenance proactive.

Découvrez notre service d'hébergement

Nos témoignages

 Incroyable entreprise, service optimale. je recommande fortement. 

Mathis • Developer Full Stack Voir le projet

 Adrien a permis à TeleSoft de faire face à des situations parmi les plus extrêmes, telles que l'incendie dans le datacenter d'OVH. 

Benoît • Account Manager Voir le projet

 Faire appel à Adrien, c'est synonyme d'une garantie de résultat, d'un travail sérieux, d'une bonne organisation et d'un accompagnement personnalisé. 

David • Account Manager Voir le projet

FAQ Refonte SaaS legacy Symfony

Vos questions sur la refonte d'un SaaS Symfony existant, la méthode Strangler Pattern et les outils utilisés.

Qu'est-ce qu'une refonte SaaS legacy Symfony ?

Une refonte SaaS legacy Symfony consiste à moderniser progressivement une application web vieillissante (Symfony 3, 4, 5 ou 6) sans interrompre la production. L'objectif n'est pas de tout réécrire, mais de remplacer pièce par pièce les composants obsolètes : montée de version PHP, migration Doctrine, bascule Webpack Encore vers AssetMapper, modernisation Twig, suppression des deprecations. Le résultat est une application alignée sur la version LTS de Symfony, sécurisée et maintenable pour les 5 à 10 prochaines années.

Pourquoi refondre plutôt que repartir de zéro ?

Repartir de zéro semble séduisant, mais c'est statistiquement la voie la plus risquée. Une réécriture complète prend 2 à 3 fois plus de temps que prévu, gèle la roadmap produit pendant des mois, et perd la connaissance métier accumulée dans le code legacy. Une refonte progressive via le Strangler Pattern préserve la production, conserve les fonctionnalités éprouvées et permet de financer le chantier sur la durée. Vos clients ne voient quasiment rien, mais votre dette technique fond mois après mois.

Quels signaux indiquent qu'il faut refondre votre SaaS ?

Plusieurs indicateurs convergents justifient une refonte :

  • Version PHP ou Symfony non maintenue (PHP 7.x, Symfony 3 / 4 / 5)
  • Deprecations Doctrine, Twig ou Symfony qui s'accumulent dans les logs
  • Couverture de tests inexistante ou suite PHPUnit cassée
  • Temps de développement multiplié par 3 ou 4 sur des fonctionnalités simples
  • Bugs collatéraux à chaque livraison
  • Performance dégradée, requêtes N+1, Core Web Vitals au rouge
  • Bundles abandonnés ou non compatibles avec la version cible

Si vous cochez 3 cases ou plus, le chantier devient prioritaire.

Comment se déroule une refonte progressive (Strangler Pattern) ?

Le Strangler Pattern se déroule en 5 phases :

  1. Audit et cartographie de la dette technique via PHPStan, Rector, analyse des dépendances
  2. Sécurisation du socle : tests caractérisation sur les parcours critiques, mise en place CI/CD, monitoring
  3. Migration automatisée avec Rector pour les transformations massives (annotations vers attributs, modernisations Symfony)
  4. Extraction module par module : réécriture dans le périmètre cible, branchement en parallèle, retrait progressif du code legacy
  5. Migration des données et bascule sous feature flags, réversible en quelques secondes

Chaque palier livre une valeur tangible et reste rollback-able. Aucune big bang night.

Faut-il interrompre la production pendant la refonte ?

Non. C'est précisément l'intérêt du Strangler Pattern : la production tourne en continu pendant toute la durée du chantier. Les nouveaux modules sont déployés en parallèle des anciens, branchés via un routeur applicatif ou des feature flags. Les bascules finales se font sur des fenêtres planifiées (souvent un dimanche soir) et restent réversibles en moins d'une minute. La maintenance de sécurité du legacy continue en parallèle de la refonte, gérée par le même interlocuteur.

Combien de temps prend une refonte SaaS legacy Symfony ?

La durée dépend entièrement de l'ampleur du chantier : taille de la base de code, écart entre la version actuelle et la version cible, qualité des tests existants, complexité du modèle de données. Une migration Symfony 6 vers 7 propre se boucle généralement en 4 à 8 semaines. Une remontée Symfony 3 ou 4 vers Symfony LTS sur une application volumineuse peut s'étaler sur 4 à 9 mois, en paliers fonctionnels. Le périmètre et le planning sont formalisés en devis personnalisé après un échange initial gratuit de 30 minutes.

Quelle stack cible après refonte ?

La stack cible recommandée chez ARDNTECH s'aligne sur les standards éprouvés de l'écosystème Symfony :

  • Symfony en version LTS (support longue durée, sécurité garantie 4 ans)
  • PHP 8.3 ou 8.4 selon le calendrier de support
  • Doctrine ORM 3 avec attributs PHP 8
  • MariaDB par défaut, ou PostgreSQL selon les contraintes du projet
  • AssetMapper ou Webpack Encore selon le besoin front
  • Twig 3 et composants Twig pour les interfaces
  • Hébergement souverain en France ou en Suisse (Scaleway, OVH, Infomaniak ou Proxmox auto-hébergé)
Quels outils utilisez-vous pour la refonte ?

Le chantier s'appuie sur un outillage open source éprouvé :

  • Rector pour les transformations de code automatisées (montées de version PHP, deprecations Symfony et Doctrine)
  • PHPStan niveau 5 à 8 pour la détection statique des erreurs
  • PHP CS Fixer pour l'homogénéisation du style de code
  • PHPUnit pour les tests unitaires et fonctionnels
  • Composer Outdated pour le suivi des dépendances
  • GitLab CI ou GitHub Actions pour l'intégration continue
  • Symfony Profiler et Blackfire pour la performance applicative

Chaque outil est branché dans le pipeline CI dès la phase de sécurisation du socle, pour que le chantier de refonte avance avec un filet de sécurité permanent.

Votre SaaS legacy mérite une refonte progressive maîtrisée

Parlons de votre projet

Demander un devis personnalisé
Solutions performantes Conçues pour durer et évoluer
Hébergé en France Conforme RGPD, souverain
Suivi transparent Aucun coût caché, devis détaillé
Tarification équitable Vous choisissez votre budget
Éco-responsable Code sobre, hébergement vert