Bonjour,
Je voudrais ajouter un listener qui déclenche après validation du formulaire d'inscription de FOSUSER
J'ai donc dans mon bundle UserBundle en parent de FOSUER crée un service
src\Gallery\UserBundle\Resources\config\services.yml
J'importe mon service :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 services: gallery_user.registration_complet: class: Gallery\UserBundle\EventListener\RegistrationListener arguments: [@doctrine.orm.entity_manager] tags: - { name: kernel.event_subscriber }
\app\config\config.yml
Et donc ci dessous ma classe qui devrait s’exécuter à chaque validation du formulaire d'inscription de FOSUSER
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 imports: ../.. - { resource: "@GalleryUserBundle/Resources/config/services.yml" }
src\Gallery\UserBundle\EventListener\RegistrationListener.php
Donc si je fais php/console container:debug, je trouve bien mon service
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 class RegistrationListener implements EventSubscriberInterface { protected $container; protected $em; public function __construct(EntityManager $em) { echo 'line ' . __LINE__ . " XXX " . __FILE__; $this->em = $em; } public static function getSubscribedEvents() { echo 'line ' . __LINE__ . " XXX " . __FILE__; return array( FOSUserEvents::REGISTRATION_CONFIRMED => 'onRegistrationSuccess', FOSUserEvents::REGISTRATION_SUCCESS => 'setRole', FormEvents::POST_SUBMIT => 'setRole2' ); } public function onRegistrationSuccess(\FOS\UserBundle\Event\FormEvent $event) { echo 'line ' . __LINE__ . " XXX " . __FILE__; die(); } public function onKernelController( $event) { echo 'line ' . __LINE__ . " XXX " . __FILE__; die(); } public function setRole( FormEvent $event) { echo 'line ' . __LINE__ . " XXX " . __FILE__; die(); } public function setRole2( FormEvent $event) { echo 'line ' . __LINE__ . " XXX " . __FILE__; die(); } }
gallery_user.registration_complet Gallery\UserBundle\EventListener\RegistrationListener
Apparemment le service est bien enregistré,
le constructeur et onKernelController sont bien exécutés.
Normalement à chaque validation d'un formation, une des méthodes ajoutées par getSubscribedEvents (onRegistrationSuccess, setRole, setRole2) devrait déclencher non ?
Cependant aucune de ces méthodes n'est exécutées. L'inscription se déroule doncnormalement et ma méthode qui vise à ajouter un rôle n'est jamais exécutée.
Mais malgré mes heures et mes jours de recherches je n'arrive à rien ! J'ai oublié quelque chose ou alors?
Merci pour vos réponses.
Pi
Partager