我正在使用 symfony2 的 FOS 用户包,并希望在用户确认注册时运行一些自定义代码来记录事件/register/confirm/{token}
但是,当用户被确认时似乎没有事件,所以我想知道在用户帐户被确认时挂钩执行的最佳方法。
我正在使用 symfony2 的 FOS 用户包,并希望在用户确认注册时运行一些自定义代码来记录事件/register/confirm/{token}
但是,当用户被确认时似乎没有事件,所以我想知道在用户帐户被确认时挂钩执行的最佳方法。
您可以覆盖RegistrationController(请参阅doc)以添加日志记录功能。
如果您能够使用 dev-master (2.0.*@dev),那么您可以使用 FOSUserBundle 中的新控制器事件。有关详细信息,请参阅 github 上的文档:https ://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/controller_events.md
这是确认事件的一个小例子。不要忘记定义上面链接中提到的服务。
<?php
namespace Acme\UserBundle\Security\Listener;
use FOS\UserBundle\Event\GetResponseUserEvent;
use FOS\UserBundle\FOSUserEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class RegistrationListener implements EventSubscriberInterface
{
public function __construct(/** inject services you need **/)
{
// assign services to private fields
}
public static function getSubscribedEvents()
{
return array(FOSUserEvents::REGISTRATION_CONFIRM => 'onRegistrationConfirm',);
}
/**
* GetResponseUserEvent gives you access to the user object
**/
public function onRegistrationConfirm(GetResponseUserEvent $event)
{
// do your stuff
}
}