Bonjour, je suit un cours pour apprendre symfony mais quelque chose n'est pas clair, comment pouvez vous m'expliquer clairement pourquoi ici il crée un constructeur pour l'entity manager ?

merci d'avance

  private $entityManager;

    public function __construct(EntityManagerInterface $entityManager)
    {
        $this->entityManager = $entityManager;
    }

        $temoignage = $this->entityManager->getRepository(Testimony::class)->findAll();

        return $this->render('home/index.html.twig',[
            'temoignage'=>$temoignage
        ]);
    }
}

4 réponses


Simplement pour éviter d'avoir à injecter l'entity manager dans chaque fonction qui en aurait besoin.

Exemple si tu as x fonctions qui utilisent l'entity manager dans la même classe, tu devrais les écrire comme cela :

maFonction(EntityManagerInterface $entityManager) {
    ....
}

Alors que là il est appelé partout dans ta classe, tu as juste à l'instancier avec $entityManager.

Si tu n'as que une ou deux fonctions qui l'utilisent tu n'es pas obligé d'utiliser le constructeur. C'est une question de préférence.

yonea80
Auteur

Merci je comprends mieux, et je voudrais savoir aussi a quoi sert le handlerequest dans le cas si dessous s'il te plait
Je sais que c'est pour que le formulaire ecoute la requete, mais il me faudrait une explication plus concrète

        $user = new User();
        $form = $this->createForm(RegistrationFormType::class, $user);
        $form->handleRequest($request);

C'est simplement la méthode de symfony qui va traiter automatiquement le formulaire. Pas besoin de chercher plus loin :) Tu peux toujours lire la doc si nécessaire.

yonea80
Auteur

ok super, merci a toi :)