Développeur Symfony Freelance – Expert Backend PHP

Symfony est le framework sur lequel j’ai le plus construit – et le plus déconstruit. De Symfony 2 chez Gestour en 2011 à Symfony 6 chez IAD en 2024, j’ai vu le framework évoluer, son écosystème mûrir, et les erreurs qui se répètent d’un projet à l’autre. Cette page détaille où, quand et comment j’ai utilisé Symfony en conditions réelles.

Votre projet Symfony a besoin d’un spécialiste quand…

Vous démarrez un backend critique

Choix d’architecture, design d’API, conventions d’équipe – mieux vaut poser les bonnes fondations dès le début plutôt que de les corriger à mi-chemin.

Votre legacy Symfony freine les livraisons

Symfony 2 ou 3 toujours en production, couplage fort, tests absents. Il existe une voie entre « on touche à rien » et « on réécrit tout » – c’est mon terrain de jeu.

Une montée de version est inévitable

Migration de Symfony 3/4/5 vers une version récente, avec une couverture de tests comme prérequis et un plan de migration progressif livrable par étapes.

Les performances se dégradent

Profiling Symfony, optimisation Doctrine, stratégies de cache, révision des requêtes N+1 – identifier le vrai goulot avant d’investir dans du hardware.

Vous voulez un regard extérieur honnête

Audit de code, revue d’architecture, feuille de route priorisée – sans vendre une réécriture complète si ce n’est pas nécessaire.

Votre équipe monte en compétence

Introduire DDD, l’architecture hexagonale ou le TDD dans un projet existant, sans perturber les livraisons. Sessions de pair-programming et revues de code ciblées.

Missions Symfony – 13 ans en contexte réel

IAD Immobilier

2022–2024 · 2 ans
Refonte CRM et moteur de rapprochement immobilier

Au cœur de l’expansion internationale d’IAD (ouverture UK et US), intégration de deux squads successives pour travailler sur les briques candidature et CRM. Développement du « projet d’achat » – point d’entrée unique pour gérer les critères acquéreurs – et d’un moteur de rapprochement automatique biens/critères. Architecture hexagonale stricte avec approche DDD dès la conception, sur un monolithe modulaire en cours de découpage.

Symfony 3.4 / 5 / 6 API Platform Architecture hexagonale DDD PHP 8 PostgreSQL AWS ECS · Lambda · SQS PHPUnit

Leboncoin (Adevinta)

2021–2022 · 1 an
Modernisation d’un outil de multidiffusion automobile

Suite au rachat de L’Argus, la feature team Import récupère une application legacy de diffusion d’annonces automobiles. Mission : la mettre en production dans l’écosystème Adevinta et l’ouvrir à Leboncoin.fr. Réduction de l’image Docker de 1 Go à quelques centaines de Mo, mise en place de tests fonctionnels sur les flux import/export, refactoring en architecture hexagonale, et développement d’une API d’automatisation des branchements clients.

Symfony 3.4 / 5 Architecture hexagonale PHP 7.2 / 8 MariaDB · MongoDB AWS Batch · Lambda · SQS Kubernetes PHPUnit

Agence DPS (Syneido)

2021 · 3 mois
DevOps & coaching CI/CD sur projets Symfony

Dockerisation des environnements, mise en place d’intégration et déploiement continu sur des applications Symfony existantes. Ateliers techniques avec les équipes (Xdebug, Gitflow, WSL, Docker). Migration de suzuki.fr vers Platform.sh.

Symfony GitHub Actions Docker Platform.sh Ansible

Diverses startups

2020–2021 · 6 mois
PHP/Symfony serverless sur AWS Lambda

Migration d’une application de calcul de dallage béton (PHP/Symfony monolithique) vers une architecture serverless sur AWS Lambda. Les calculs lourds sont exécutés en parallèle par un moteur distribué, avec des gains de performance significatifs.

Symfony · Lambda PHP 7.2 AWS API Gateway · CloudFront Terraform Serverless

DgBirds · Air France

2018–2019 · 1,5 an
Transformation API-centric d’un SaaS iPad pour pilotes

SaaS intrapreuneurial au sein d’Air France, outil de gestion de missions pour pilotes et personnel au sol. Extraction de la logique métier des contrôleurs vers des services applicatifs pour créer une API indépendante de Symfony et de Doctrine. Migration MySQL 5 → PostgreSQL 11 avec réécriture de requêtes en CTE récursifs et vues matérialisées. Définition d’une stratégie tests et setup de l’intégration continue.

Symfony 3.4 Clean Architecture PHP 7.1 PostgreSQL PHPUnit · TDD AWS S3 Terraform

ItiQiti

2015–2018 · 3 ans
API RESTful centrale et microservices asynchrones

Startup de collecte de dons associatifs. Maintenance et évolution de l’API centrale, développement de microservices asynchrones (ZeroMQ), TDD avec tests d’acceptation. Infrastructure Docker complète, pipelines CI Jenkins/CircleCI. Long contexte full-remote.

Symfony 2.7 / 3 PHP 5.6 MongoDB · ZeroMQ PHPUnit · TDD Jenkins · CircleCI

Gestour · Amadeus IT

2011–2015 · 3,5 ans
Premier projet Symfony : logiciel de gestion d’agences de voyage

Gestour est l’outil de gestion d’agences de voyage le plus utilisé en France. Sélection et adoption de Symfony 2 pour les nouveaux développements web – Gestour 360, version web destinée à remplacer le client lourd C++. Développement d’un CRM pour CroisiEurope et d’un outil d’analyse statistique métier. Contexte Scrum dans un éditeur SaaS structuré.

Symfony 2.3 LTS PHP 5.3 Oracle DB PHPUnit Jenkins · Vagrant SonarQube

Ces outils qui ont résolu un problème… et en ont créé un autre

API Platform – quand le framework dans le framework prend le dessus

API Platform a été une vraie révolution à son époque. Exposer une API REST documentée en quelques annotations, avec pagination, filtres et validation intégrés – c’était impressionnant. Beaucoup de projets Symfony ont adopté l’outil sans hésiter.

Sauf qu’API Platform n’est pas un simple bundle. C’est un framework dans le framework, avec son propre vocabulaire, ses propres abstractions, ses State Providers et Processors qui finissent par piloter l’organisation du code. Dans une architecture hexagonale, ça crée une tension réelle : les ressources API commencent à influencer le modèle de domaine, alors que c’est censé être l’inverse. Et quand un besoin sort des sentiers battus – permissions complexes, réponses non standard, logique métier riche – on passe plus de temps à contourner l’outil qu’à coder le domaine.

En 2026, un LLM génère une spec OpenAPI propre et maintenue à jour à partir de controllers Symfony classiques. L’argument « documentation automatique » a perdu beaucoup de son poids. Je détaille mon approche de conception d’APIs REST orientées use cases sur une page dédiée.

Sonata Admin – le CRUD qui ne reste jamais simple

Sonata suit la même logique, avec une ironie supplémentaire. Il était là pour éviter d’écrire du CRUD. Sauf qu’un CRUD d’administration ne reste jamais simple longtemps – un champ s’ajoute, une règle métier arrive, une interface spécifique est demandée. Et là commence la vraie douleur : faire rentrer un besoin qui a évolué dans les contraintes d’un outil qui n’a pas prévu ce cas.

Sans parler des migrations. Sonata est l’une des raisons les plus fréquentes pour lesquelles des projets restent bloqués sur Symfony 3 ou 4 – sa cascade de dépendances rend toute montée de version particulièrement pénible. Pour un outil utilisé à 80% comme un simple générateur de formulaires.

FOSUserBundle, FOSRestBundle, JMSSerializer – l’inertie des dépendances

La liste est longue d’outils qui répondaient à un vrai manque à une époque où Symfony ne couvrait pas ces besoins nativement. La gestion des utilisateurs, l’exposition REST, la sérialisation avancée – autant de problèmes que Symfony a depuis absorbés dans son cœur.

Les projets, eux, gardent souvent la dépendance par inertie. Pas par mauvais choix – simplement parce qu’un projet qui tourne n’a pas toujours le temps ni le budget pour se désendetter au fil des releases.

Ce que ça dit du cycle de vie d’un projet Symfony

Ce n’est pas une question de mauvais choix initiaux. C’est simplement ce qui arrive quand un framework mature absorbe progressivement son écosystème. Les outils tiers qui comblaient les manques d’hier deviennent les dettes techniques d’aujourd’hui. Identifier lesquels freinent vraiment l’évolution du projet – et dans quel ordre s’en défaire – c’est souvent là que se joue la différence entre un projet qui avance et un projet qui subit. Je décris mes stratégies de refactoring et modernisation legacy en détail.

Clients qui m’ont fait confiance

IAD Immobilier
Leboncoin
Air France

Parlons de votre projet Symfony

← Retour à l'accueil