Symfony 在用户确认注册后立即执行操作

Symfony 在用户确认注册后立即执行操作,symfony,symfony-2.3,Symfony,Symfony 2.3,我在Symfony 2.3项目中使用FOSUserBundle,我想在用户点击电子邮件链接确认其帐户后立即执行一些代码。我正试着去推翻那条命令 class RegistrationController extends ContainerAware { ... } 但是没有运气: 我是否可以创建任何类型的事件,以便在此操作之后立即执行 谢谢 您可以创建一个EventListener来侦听FOSUserEvents::REGISTRATION\u,如下所示: use Symfony\Compo

我在Symfony 2.3项目中使用FOSUserBundle,我想在用户点击电子邮件链接确认其帐户后立即执行一些代码。我正试着去推翻那条命令

class RegistrationController extends ContainerAware 
{
...
} 
但是没有运气:

我是否可以创建任何类型的事件,以便在此操作之后立即执行


谢谢

您可以创建一个EventListener来侦听FOSUserEvents::REGISTRATION\u,如下所示:

use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use FOS\UserBundle\FOSUserEvents;
use FOS\UserBundle\Event\UserEvent;

class RegistrationConfirmedEventListener implements EventSubscriberInterface
{
    public static function getSubscribedEvents()
    {
        return array(FOSUserEvents::REGISTRATION_CONFIRMED => 'performOnRegistrationConfirmed');
    }

    public function performOnRegistrationConfirmed(UserEvent $event)
    {
        $user = $event->getUser();
        // Do something
    }
}

函数confirmation$token中的重写似乎performOnRegistrationConfirmed方法没有像我那样执行,我在XXX/myBundle/Event/中创建了一个新文件RegistrationConfirmed.php,并将此代码粘贴到其中。我错过什么了吗?对不起,我是Symfony 2的新手。谢谢,你必须这么做。编辑:我刚刚注意到这不是最好的例子,我现在找不到更好的。只需将您的类添加到service.yml,并将其标记为:kernel.event_subscriber这里有一个更好的链接: