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é
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.
Analyse du code : couplage, dette, zones à risque, librairies obsolètes, base de données. Rapport priorisé avec plan.
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.
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.
Les nouvelles fonctionnalités sont écrites dans la nouvelle architecture. Progressivement, les anciennes sont réécrites et débranchées — sans geler l'activité.
Deux environnements de production identiques. Bascule du trafic en 30 secondes. Si quelque chose casse, retour arrière en 30 secondes.
Pendant la migration, je forme vos développeurs aux pratiques modernes Symfony : nouvelles syntaxes, messagerie asynchrone, API Platform.
<?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.
Diagnostic exhaustif avec plan de migration. Pour décider si, quand et comment migrer.
Symfony 5 → 8, ou 4 → 6. Modernisation automatisée, tests, déploiement sans coupure. Zéro interruption.
Symfony 2/3 → 8, ou réarchitecture complète. Remplacement progressif module par module, nouvelle architecture en parallèle.
Tarifs sur devis après cadrage · forfait ou régie selon le format
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.
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.
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é.
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.
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.
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.
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.
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.