2017-10-15 8 views
0

Je suis vraiment nouveau dans les écouteurs d'événements sur Symfony et je souhaite trouver un moyen agréable de déclencher un événement lorsqu'une entité spécifique (par exemple, un utilisateur) est conservée.Comment créer un écouteur d'événement lorsqu'une entité est persistante

J'ai recherché dans la documentation et bien que j'ai trouvé des références aux événements onKernel, je n'ai pas été capable de créer un écouteur pour ce dont j'ai besoin. Pouvez-vous s'il vous plaît me diriger vers la bonne direction ou me donner un exemple?

+0

http: //docs.doctrine-project .org/projects/doctrine-orm/fr/dernier/reference/events.html – Cerad

Répondre

3

Ceci est assez bien documenté here.

Vous créez essentiellement une classe qui implémente Doctrine\Common\EventSubscriber et vous avez une méthode getSubscribedEvents() où vous ajoutez des événements que vous voulez déclencher, il ressemblerait à ceci:

public function getSubscribedEvents() 
{ 
    return ['postPersist']; 
} 

public function postPersist(LifecycleEventArgs $args) 
{ 
    $object = $args->getEntity(); 

    if (!$object instanceof User) { 
     return; 
    } 

    $this->doSomething($object); 
}