Héritage
Symfony 3.4
Monolithe bundles (Backend / Frontend), PHP d’époque 5.5+, Doctrine 2, AppKernel. Point de départ de la migration, aujourd’hui remplacé.
Production
Symfony 7
PHP 8.3, Doctrine ORM 3, Security, Messenger, Mailer, Twig, Stimulus / Turbo. Même métier, autre socle — livré en production.
Problème métier
Une application critique d’atelier ne se jette pas. Symfony 3.4 n’est plus maintenu : recrutement, sécurité, dépendances et évolutions deviennent coûteux. Il faut porter commandes, jobs de production, opérateurs, catalogue et espaces clients sur un Symfony actuel, tout en gardant le comportement métier de l’existant.
Architecture
Le legacy était découpé en deux bundles Symfony 3. La production reprend les mêmes surfaces, avec une couche Application (managers de jobs, opérateurs, produits, commandes) au-dessus des entités Doctrine, plus une API pour les partenaires. Ce n’est pas un greenfield : le schéma et les parcours existants ont contraint chaque module.
- LegacySymfony 3.4 · bundles Backend / Frontend · Doctrine 2 · PHP historique
- MétierJobs de production · opérateurs · catalogue · commandes · clients / salons · rapports
- ProductionPHP 8.3 · Symfony 7.1 · Doctrine 3 · Messenger · Mailer · monitoring
- UIBack-office atelier · espace frontend · API · Twig + Stimulus / Turbo
Points forts
Lire le legacy avant de le remplacer
Comprendre les bundles, les jobs d’atelier et les parcours clients, puis les reporter module par module — pas une réécriture à l’aveugle.
Saut de génération, pas un lift cosmétique
De Symfony 3.4 / PHP 5.5+ à PHP 8.3 / Symfony 7 / Doctrine 3. Rector, PHPStan et PHP CS Fixer tiennent la barre pendant le portage.
Trois surfaces, un domaine
Atelier (opérateurs, jobs, production), espace clients / maisons funéraires, API de commandes. Le métier reste bilingue FR/EN.
Qualité dès la migration
CI GitHub Actions (PHP 8.3, PHPStan, CS-Fixer), monitoring applicatif, Messenger et Mailer sur le nouveau socle — là où le 3.4 n’avait plus d’avenir.
Mon rôle
Analyse du code legacy, portage vers Symfony 7, modèle de données, back-office, frontend métier, API et qualité (PHPStan, Rector, CI).
Livrables et résultats
Public et vérifiable
- Entreprise publique : collection-souvenir.com.
Réalisé dans le cadre de ma mission
- Migration livrée : PHP 8.3, Symfony 7.1, Doctrine 3 en production.
- CI : PHPStan et PHP CS Fixer sur PHP 8.3.
Stack
Legacy
- PHP 5.5+
- Symfony 3.4
- Doctrine 2
- Bundles SF3
Production
- PHP 8.3
- Symfony 7.1
- Doctrine ORM 3
- Messenger
- Twig
- Stimulus
- Turbo
Qualité
- PHPStan
- PHP CS Fixer
- Rector
- PHPUnit
- GitHub Actions