Post

Symfony – Injection de dépendances

Symfony – Injection de dépendances

Cours 31 — Injection de dépendances

Introduction

L’injection de dépendances permet à Symfony de fournir automatiquement les objets nécessaires à une classe ou à une méthode.

Cette technique est utilisée partout dans Symfony.


Exemple simple

1
2
3
4
5
public function index(
    EntityManagerInterface $entityManager
): Response
{
}

Symfony fournit automatiquement :

1
$entityManager

Exemple avec un service

1
2
3
4
5
public function index(
    CalculAgeService $calculAgeService
): Response
{
}

Symfony crée et fournit le service.


Exemple avec Request

1
2
3
4
5
public function index(
    Request $request
): Response
{
}

Symfony fournit automatiquement l’objet Request.


Plusieurs dépendances

1
2
3
4
5
6
7
public function index(
    Request $request,
    EntityManagerInterface $entityManager,
    CalculAgeService $calculAgeService
): Response
{
}

Pourquoi utiliser l’injection ?

Permet de :

  • éviter les créations manuelles ;
  • réduire le code ;
  • faciliter les tests ;
  • améliorer la maintenance.

Sans injection

1
$service = new CalculAgeService();

Avec injection

1
CalculAgeService $calculAgeService

Symfony s’occupe de tout.


Comprendre le processus

1
2
3
4
5
6
7
Contrôleur
↓
Symfony
↓
Injection
↓
Objet disponible

Exemples fréquents

1
2
3
4
5
6
7
Request

EntityManagerInterface

Repository

Service

Conclusion

L’injection de dépendances est un mécanisme fondamental de Symfony.

À retenir :

  • Symfony fournit automatiquement les objets ;
  • aucun new n’est nécessaire ;
  • utilisée avec les services, repositories et Request ;
  • simplifie fortement le développement.
This post is licensed under CC BY 4.0 by the author.