Я активировал подтверждение пользователя для 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));
}
}
К сожалению, EventListeners, похоже, не расширяются, как и контроллеры или формы. (На всякий случай вы задаетесь вопросом: конечно, мой пакет является дочерним элементом FOSUserBundle.)
Поэтому я хочу избежать редактирования этих двух строк непосредственно в папке поставщика (так как это было бы очень плохой практикой!). Итак, каковы мои пути из этого бедствия?