2017-01-18 1 views
1

Я знаю, этот вопрос уже отвечал, и я даже попробовал некоторые, если не все ответы, которые я нашел, но без успеха еще, поэтому вот мой вопрос:Symfony 3.2.2 FOSUserBundle Аутентифицировать пользователь слушатель не вызывает

I только что установил новое приложение Symfony и успешно установлено FOSUserBundle, сделал несколько изменений на UserEntity, и на FormRegistrationType (добавлены некоторые поля, ...)

Затем я попытался следовать этому учебнику: http://symfony.com/doc/master/bundles/FOSUserBundle/controller_events.html

Вот мои services.yml:

app.suscriber.authentification: 
     class: MyBundle\Suscriber\AuthSubscriber 
     arguments: [ "@doctrine" ] 
     tags: 
      - { name: kernel.event.suscriber } 

А вот мой класс AuthSuscriber =>

<?php 

namespace MyBundle\Suscriber; 

use MyBundle\Entity\User; 
use Doctrine\Bundle\DoctrineBundle\Registry; 
use FOS\UserBundle\Event\FilterUserResponseEvent; 
use FOS\UserBundle\Event\UserEvent; 
use FOS\UserBundle\FOSUserEvents; 
use FOS\UserBundle\Security\LoginManagerInterface; 
use Symfony\Component\EventDispatcher\EventDispatcherInterface; 

class AuthSubscriber implements EventSubscriberInterface 
{ 
    protected $doctrine; 
    protected $user; 

    public function __construct(Doctrine $doctrine) 
    { 
     $this->doctrine = $doctrine; 
    } 

    /** 
    * {@inheritdoc} 
    */ 
    public static function getSubscribedEvents() 
    { 
     return array(
      FOSUserEvents::REGISTRATION_COMPLETED => 'onRegistrationSuccess', 
      FOSUserEvents::REGISTRATION_CONFIRMED => 'onRegistrationSuccess', 
     ); 
    } 

    public function onRegistrationSuccess(FilterUserResponseEvent $event, $eventName, EventDispatcherInterface $eventDispatcher) 
    { 
    dump('here, but not seen at any time');die(); 
    } 
    } 

я вижу свою службу с консолью:

php bin/console debug:container app.suscriber.authentification 

вывода => enter image description here

Но следующая командная строка не показывает мой абонент каким-либо образом =>

php bin/console debug:event-dispatcher | grep "fos_user.registration" -A10 

следующие выходные =>

enter image description here

Несмотря на то, что показывает AuthentificationListener от FOS \ UserBundle ...

Если кто-нибудь может дать мне подсказку о том, как отладить это я бы с удовольствием его послушал, потому что я полностью потерялся здесь> ____ < "

Спасибо,

Hurin

+0

Возможно, было бы полезно увидеть соответствующий вывод из опубликованных вами команд –

+0

Итак, при подтверждении пользователя этот код не вызывается? – COil

+0

Когда я зарегистрирую пользователя, этот код не вызывается, даже если я вижу, что в строке поставщика/friendsofsymfony/user-bundle/Controller/RegistrationController.php, строка 71, есть эта строка => 'code' $ dispatcher -> отправка (FOSUserEvents :: REGISTRATION_SUCCESS, $ event); Мне было бы очень приятно понять, как читается service.yml, заставляю я копаться в коде, чтобы увидеть, что вызванная отправка фактически сгенерирована (imho) и находится в var/cache/dev/classes.php, и здесь, когда я смотрю на слушателей, я не вижу никаких следов моего AuthentificationSuscriber> ___ <" – hurin

ответ

1

Нет ли опечатки в названии тега? Подчеркивание _ вместо .

app.suscriber.authentification: 
    class: MyBundle\Suscriber\AuthSubscriber 
    arguments: [ "@doctrine" ] 
    tags: 
     - { name: kernel.event_subscriber } 

The event list.

+0

Большое спасибо, я знаю, что это должно звучать глупо, но да, это было просто опечатка> ___>" Is есть ли способ легко узнать, если я сделал опечатку в своих тегах? Во всяком случае, спасибо большое, что это было очень мило с моей стороны, чтобы дать мне руку :) Имейте славный день, и извините за время, которое уходит на мою проблему с опечаткой o/ – hurin

+0

Добро пожаловать. Я думаю, что нет никакого способа контролировать теги, потому что вы можете определить свои собственные. – COil

+0

Хорошо, теперь я понимаю, у меня все еще есть чему поучиться, прежде чем «освоить» symfony, во всяком случае, спасибо за ваше время, у меня хороший день – hurin

Смежные вопросы