Programmation PHP/Symfony/Évènement

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


Pour exécuter du code après certaines exécutions du code, il faut créer une classe qui écoute ces évènements : un event listener[1].

Cette classe doit peut être reliée à son évènement soit dans sa déclaration de service (en YAML), soit par l'intermédiaire d'un souscripteur (event subscriber).

Exemple YAML[modifier | modifier le wikicode]

services:
    App\EventListener\MyViewListener:
        tags:
            - { name: kernel.event_listener, event: kernel.view }
class MyViewListener
{
    public function onKernelException(ExceptionEvent $event)
    {
        ...
    }
}

Exemple avec souscripteur[modifier | modifier le wikicode]

Un souscripteur doit forcément implémenter EventSubscriberInterface.

class ViewSubscriber implements EventSubscriberInterface
{
    public function getSubscribedEvents()
    {
        return [
            KernelEvents::VIEW => []
        ];
    }
}

Références[modifier | modifier le wikicode]