Symfony, différence entre listener et subscriber

Default
,

Bonjour,
en symfony il existe listener et subscriber c'est quoi les différences entre listeners et subscribers en symfony ?

1 Réponse

87112
,

Hello,

Tout d'abord, il serait bien de supprimer tes précédents posts, demander 3 fois la même choses en créant 3 sujets, c'est pas top...
Ensuite, la doc Symfony l'explique très bien : https://symfony.com/doc/current/event_dispatcher.html#listeners-or-subscribers

Pour résumer, c'est à la convenance de chacun. Pour le listener, la définition de l'élément écouté se fait dans le service (donc pas dans la classe du listener), alors que dans la classe du subscriber, on voit tout de suite quel évémenent est écouté (on s'abonne à un événement).
Tu peux donc indifféremment utiliser les 2, suivant l'approche que tu préfères.
Ce qui est vraiment très intéressant, c'est que Symfony permet de créer ses propres événements, puis de s'y abonner pour effectuer des traitements particuliers.
Perso, j'ai déja utilisé ce système pour gérer une timeline des actions de mon application. Je déclenche des événements lors de certaines actions (création, modification, ...), et ces événements sont écoutés et génèrent des items dans ma timeline. Très pratique, ça permet d'éviter d'ajouter ce code dans mon code métier.
Tu as également les événements Doctrine qui sont très intéressants et pratiques à utiliser (voir https://symfony.com/doc/current/doctrine/event_listeners_subscribers.html)