Mathieu Desnouveaux

Symfony & l'injection de dépendances : du passé au futur

Présentation par Imen Ezzine sur l'évolution historique de l'injection de dépendances dans l'écosystème Symfony et API Platform à l'API Platform Conference 2025

Sketchnote retraçant l'évolution de l'injection de dépendances dans Symfony. Chronologie: Vanilla PHP (instanciation directe), Symfony 1 (2007, sfContext), Symfony 2 (2011, conteneur de services), Symfony 2.7 (autowiring), API Platform 1 (2015), API Platform 2 (2016), Symfony 3.3 (2017, 'magic' API resource basée sur le conteneur de services + tag manuel), Symfony 4 (configuration automatique, service privé avec optimisation), Symfony 5.3 PHP8 (2019, arrivée des attributs), Symfony 6 (2021, les attributs deviennent la norme), API Platform 3 (2022, state processor), Symfony 7 (2023, autowire, iterator). Flèche descendante indique 'un parcours évolutif vers une simplification'.

Cette sketchnote a été réalisée lors de l'API Platform Conference 2025. Elle illustre la présentation "Symfony & l'injection de dépendances : du passé au futur" donnée par Imen Ezzine, qui retrace l'évolution de l'injection de dépendances sur près de 20 ans.

Contenu de la présentation

La présentation offre une chronologie complète de l'évolution de l'injection de dépendances dans l'écosystème Symfony et API Platform :

Vanilla PHP : instanciation directe des dépendances, couplage fort entre les composants.

Symfony 1 (2007) : introduction de sfContext, un service locator centralisé permettant d'accéder aux services via un contexte global.

Symfony 2 (2011) : révolution avec le conteneur de services, permettant une véritable injection de dépendances configurée en XML/YAML.

Symfony 2.7 : arrivée de l'autowiring, réduisant la configuration manuelle en détectant automatiquement les dépendances.

API Platform 1 & 2 (2015-2016) : intégration de l'injection de dépendances pour construire des APIs REST.

Symfony 3.3 (2017) : introduction de la "magic" avec les API resources basées sur le conteneur de services et les tags manuels pour découvrir les services.

Symfony 4 : configuration automatique et services privés avec optimisation, réduisant drastiquement la configuration nécessaire.

Symfony 5.3 PHP8 (2019) : arrivée des attributs (anciennement annotations), permettant de définir la configuration directement dans le code PHP.

Symfony 6 (2021) : les attributs deviennent la norme, remplaçant progressivement YAML et XML pour la configuration.

API Platform 3 (2022) : introduction des state processors, architecture plus flexible pour gérer les états.

Symfony 7 (2023) : amélioration de l'autowire et introduction de l'iterator pour gérer des collections de services.

En conlusion, Symfony à connu "un parcours évolutif vers une simplification", avec 16 ans d'évolution visant à réduire la complexité.

Thèmes:
🐘 PHP 🏗️ Architecture
Événement:
🎤 API Platform Conference

Source: Imen Ezzine
Publié le 29 novembre 2025