我为 FOSUserBundle 激活了用户确认。但我不想接受原始听众的回应
$url = $this->router->generate('fos_user_registration_check_email');
$event->setResponse(new RedirectResponse($url));
我想选择另一条路线。我试图扩展 EventListener
namespace Acme\MyBundle\EventListener;
use FOS\UserBundle\EventListener\EmailConfirmationListener as BaseListener;
// ...
class EmailConfirmationListener extends BaseListener
{
public function onRegistrationSuccess(FormEvent $event)
{
$url = $this->router->generate('fos_user_registration_check_email');
$event->setResponse(new RedirectResponse($url));
}
}
不幸的是,EventListener 似乎不可扩展,就像 Controller 或 Forms 一样。(以防万一您想知道:当然,我的包是 FOSUserBundle 的子包。)
所以我想避免直接在供应商文件夹中编辑这两行(因为这样做是非常糟糕的做法!)。那么我有什么办法摆脱这场灾难呢?