У меня есть прослушиватель событий, который должен срабатывать, когда пользователь входит в мою установку Symfony.Вход EventListener не работает на стороне производства
У меня есть следующие в моей services.yml
...
d_user.login_listener:
class: D\UserBundle\EventListener\LoginListener
arguments: []
tags:
- { name: 'kernel.event_subscriber', event: 'security.interactive_login' }
и в моем входа слушателя я просто так:
<?php
namespace D\UserBundle\EventListener;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class LoginListener implements EventSubscriberInterface
{
public function onSecurityInteractiveLogin(InteractiveLoginEvent $event)
{
echo 'user logged in';
}
public static function getSubscribedEvents()
{
return array(
// must be registered before the default Locale listener
'security.interactive_login' => array(array('onSecurityInteractiveLogin', 18))
);
}
}
На моем Dev сервере я правильно вижу текст «пользователь вошел в «перед перенаправлением, но на моем производственном сервере он просто входит в систему без запуска события. Я изменяю это позже, чтобы установить сеанс var для входа пользователя в систему. Мне просто нужно вызвать метод.
Любые советы? Я попытался очистить кэш для prod и dev в моей рабочей среде, но это не помогло.
вы зашедший через «запомнить меня»? имейте в виду, что ваш слушатель запускает только интерактивный вход, а не при входе через «запомнить меня». – nifr
У меня были проблемы со значением, не возвращающим то же самое из базы данных, потому что я забыл обновить связанные классы классов. Моя проблема решена. – juuga