Я знаю, этот вопрос уже отвечал, и я даже попробовал некоторые, если не все ответы, которые я нашел, но без успеха еще, поэтому вот мой вопрос: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
Но следующая командная строка не показывает мой абонент каким-либо образом =>
php bin/console debug:event-dispatcher | grep "fos_user.registration" -A10
следующие выходные =>
Несмотря на то, что показывает AuthentificationListener от FOS \ UserBundle ...
Если кто-нибудь может дать мне подсказку о том, как отладить это я бы с удовольствием его послушал, потому что я полностью потерялся здесь> ____ < "
Спасибо,
Hurin
Возможно, было бы полезно увидеть соответствующий вывод из опубликованных вами команд –
Итак, при подтверждении пользователя этот код не вызывается? – COil
Когда я зарегистрирую пользователя, этот код не вызывается, даже если я вижу, что в строке поставщика/friendsofsymfony/user-bundle/Controller/RegistrationController.php, строка 71, есть эта строка => 'code' $ dispatcher -> отправка (FOSUserEvents :: REGISTRATION_SUCCESS, $ event); Мне было бы очень приятно понять, как читается service.yml, заставляю я копаться в коде, чтобы увидеть, что вызванная отправка фактически сгенерирована (imho) и находится в var/cache/dev/classes.php, и здесь, когда я смотрю на слушателей, я не вижу никаких следов моего AuthentificationSuscriber> ___ <" – hurin