MIGRATION SYMFONY LEGACY

Migrer votre application ancienne sans tout réécrire.

Vous êtes bloqué sur Symfony 2, 3, 4 ou 5 ? Je migre votre application vers Symfony 8 en gardant vos données, vos utilisateurs, vos URLs et votre équipe productive. Approche progressive, déploiement sans coupure, retour arrière immédiat en cas de problème.

§ 01 — Le problème

Le problème.

Sans expert
  • Symfony 3/4 en fin de vie — Plus de correctifs de sécurité — chaque faille vous expose directement.
  • PHP 7.x chez l'hébergeur — Plus supporté au prochain renouvellement de contrat.
  • Évolutions bloquées — Impossible d'ajouter sans casser dix autres modules.
  • Équipe qui part — Les développeurs qui connaissent l'application partent, impossible à remplacer.
  • Mises en production catastrophes — Une demi-journée, souvent un retour arrière, toujours stressant.
Avec Vulcain
  • Migration progressive (modernisation automatisée + remplacement module par module)
  • Tests de caractérisation écrits avant de toucher
  • Déploiement sans coupure avec retour arrière en 30 secondes
  • Urls et données préservées à l'utilisateur.
§ 02 — Ce qui est livré

Ce qui est livré.

§ 01

Audit préalable

Analyse du code : couplage, dette, zones à risque, librairies obsolètes, base de données. Rapport priorisé avec plan.

  • Analyse statique
  • Cartographie des modules
  • Audit de la base
  • Plan priorisé
§ 02

Tests de caractérisation

Avant de toucher au code, j'écris des tests qui capturent le comportement actuel — même les bugs. Filet de sécurité pour les modifications à venir.

  • Tests du comportement actuel
  • Données réelles
  • État de référence
  • Comparaisons
§ 03

Modernisation automatisée

Un outil (Rector) transforme automatiquement la majeure partie du code entre versions de Symfony et PHP : anciennes annotations, API modifiées, fonctions dépréciées remplacées.

  • Annotations → PHP 8
  • Dépréciations auto
  • Montée Doctrine
  • Vérification statique post-migration
§ 04

Remplacement progressif

Les nouvelles fonctionnalités sont écrites dans la nouvelle architecture. Progressivement, les anciennes sont réécrites et débranchées — sans geler l'activité.

  • Coexistence 2 versions
  • Routage progressif
  • Bascule par module
  • Débranchement contrôlé
§ 05

Déploiement sans coupure

Deux environnements de production identiques. Bascule du trafic en 30 secondes. Si quelque chose casse, retour arrière en 30 secondes.

  • 2 environnements prod
  • Bascule contrôlée
  • Tests de vérification
  • Retour arrière 30 s
§ 06

Formation équipe

Pendant la migration, je forme vos développeurs aux pratiques modernes Symfony : nouvelles syntaxes, messagerie asynchrone, API Platform.

  • Programmation en binôme
  • Sessions hebdomadaires
  • Documentation interne
  • Revue de code
rector.php php
<?php
declare(strict_types=1);

use Rector\Config\RectorConfig;
use Rector\Set\ValueObject\LevelSetList;
use Rector\Symfony\Set\SymfonySetList;
use Rector\Doctrine\Set\DoctrineSetList;

return RectorConfig::configure()
    ->withPaths([
        __DIR__ . '/src',
        __DIR__ . '/tests',
    ])
    ->withPhpSets(php82: true)
    ->withSets([
        LevelSetList::UP_TO_PHP_82,
        SymfonySetList::SYMFONY_70,
        SymfonySetList::SYMFONY_CODE_QUALITY,
        SymfonySetList::ANNOTATIONS_TO_ATTRIBUTES,
        DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES,
        DoctrineSetList::DOCTRINE_CODE_QUALITY,
    ])
    ->withImportNames(removeUnusedImports: true);

Configuration Rector d'une migration Symfony 5 → 7 : modernisation automatique de la syntaxe, remplacement des fonctions obsolètes, vérification de cohérence après migration.

§ 04 — Tarifs & délais
§ 01

Audit & roadmap

2 à 3 semaines · forfait

Diagnostic exhaustif avec plan de migration. Pour décider si, quand et comment migrer.

  • Audit code & BDD
  • Cartographie modules
  • Plan priorisé
  • Chiffrage détaillé
  • Reco architecture
§ 02

Migration mineure

4 à 10 semaines

Symfony 5 → 8, ou 4 → 6. Modernisation automatisée, tests, déploiement sans coupure. Zéro interruption.

  • Tests de caractérisation
  • Modernisation automatisée
  • Déploiement sans coupure
  • Formation équipe
  • 2 semaines de hotline
§ 03

Migration majeure

12 à 26 semaines

Symfony 2/3 → 8, ou réarchitecture complète. Remplacement progressif module par module, nouvelle architecture en parallèle.

  • Tout de la mineure
  • Remplacement progressif
  • Nouvelle architecture
  • Migration base
  • Suivi 3 mois post-migration

Tarifs sur devis après cadrage · forfait ou régie selon le format

§ 05 — Cas client · ERP logistique · Symfony 3 → 7

Groupe GM

ERP logistique multi-entrepôts bloqué sur Symfony 3.4 et PHP 7.2. Migration vers Symfony 7 + PHP 8.3 en remplacement progressif, tableaux de bord Vue.js en parallèle. Aucune coupure de service sur toute la migration.

  • Symfony 3 → 7
  • Rector
  • Doctrine
  • Vue.js
14 sem.
Durée totale
0 min
Interruption à la bascule
+50 %
Productivité équipe
§ 04 — Questions fréquentes

Questions sur la migration .

§ 01 Symfony 3 → 8, c'est possible ?

Oui, mais pas d'un seul coup. En pratique : 3 → 4 → 5 → 6 → 7 → 8, avec tests à chaque étape. L'outillage de modernisation automatique gère une grande partie. Sur un projet moyen, 10 à 16 semaines de bout en bout.

§ 02 On peut continuer à développer pendant la migration ?

Oui, c'est même recommandé pour ne pas geler l'activité. Les nouvelles fonctionnalités vont dans la nouvelle architecture, les anciennes sont migrées progressivement. Des interrupteurs logiciels permettent d'activer ou désactiver chaque module à volonté.

§ 03 Et si la migration casse quelque chose ?

Les tests de caractérisation écrits avant migration capturent le comportement actuel. Toute divergence est détectée avant la production. En production, le déploiement sans coupure permet de rebasculer en 30 secondes si un bug passe entre les mailles.

§ 04 Combien de temps pour un Symfony 5 → 8 ?

Sur une application de taille moyenne : 6 à 10 semaines. L'outillage de modernisation fait 60 à 80 % du travail, le reste est de la correction manuelle et des adaptations base de données. Un appel de cadrage gratuit vous donne un chiffrage précis.

§ 05 Vous travaillez avec nos devs ou seul ?

Les deux formats existent. Seul, je livre plus vite. Avec vos développeurs, je forme pendant la migration — c'est souvent mieux car votre équipe monte en compétence. Au choix.

§ 06 On garde notre hébergement ?

Si possible, oui. Si l'hébergeur actuel ne supporte pas PHP 8.3 ou les prérequis Symfony 8, on migre vers OVH, Scaleway ou Clever Cloud — je fais la migration d'hébergement dans le même chantier.

§ 06 — Voir aussi
§ 08 — Mettre la forge au travail

15 minutes pour savoir
si on peut forger ensemble.

Un appel, pas un formulaire de 12 champs. Vous m'expliquez votre besoin, je vous dis honnêtement si je suis la bonne personne, on repart avec une prochaine étape claire.

  • 01
    Compte-rendu écrit et estimation envoyés sous 24 h.
  • 02
    Aucun engagement. Aucune relance commerciale.
  • 03
    Si ce n'est pas pour moi, je vous oriente vers un confrère.
symfony