0
我是Symfony的新手,現在我已經瞭解了基礎知識,現在我正在潛入事件和事件監聽器。Symfony2 - 試圖理解FOSUserBundle註冊確認
我明白,當通過FOSUserBundle用戶登記有一些得到派出裏面registerAction()
- REGISTRATION_INITIALIZE
- REGISTRATION_SUCCESS
- REGISTRATION_COMPLETED
三個事件這是registerAction
代碼
public function registerAction(Request $request)
{
/** @var $formFactory \FOS\UserBundle\Form\Factory\FactoryInterface */
$formFactory = $this->get('fos_user.registration.form.factory');
/** @var $userManager \FOS\UserBundle\Model\UserManagerInterface */
$userManager = $this->get('fos_user.user_manager');
/** @var $dispatcher \Symfony\Component\EventDispatcher\EventDispatcherInterface */
$dispatcher = $this->get('event_dispatcher');
$user = $userManager->createUser();
$user->setEnabled(true);
$event = new GetResponseUserEvent($user, $request);
$dispatcher->dispatch(FOSUserEvents::REGISTRATION_INITIALIZE, $event);
if (null !== $event->getResponse()) {
return $event->getResponse();
}
$form = $formFactory->createForm();
$form->setData($user);
$form->handleRequest($request);
if ($form->isValid()) {
$event = new FormEvent($form, $request);
$dispatcher->dispatch(FOSUserEvents::REGISTRATION_SUCCESS, $event);
$userManager->updateUser($user);
if (null === $response = $event->getResponse()) {
$url = $this->generateUrl('fos_user_registration_confirmed');
$response = new RedirectResponse($url);
}
$dispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request, $response));
return $response;
}
return $this->render('FOSUserBundle:Registration:register.html.twig', array(
'form' => $form->createView(),
));
}
現在config.yml
裏面我們可以設置,以便用戶需要在他們的帳戶被激活,以確認他們的電子郵件地址,這是一個聽,我迷路
fos_user:
registration:
confirmation:
enabled: true
我在看EmailConfirmationListener配置到REGISTRATION_SUCCESS
和驗證碼,我什麼也沒找到,告訴我它是如何讀取confirmation
在config.yml
我會很感激,如果有人可以在此監聽器如何觸發O系給我解釋一下里面n confirmation
enabled
狀態。
美麗,正是我錯過了。非常感謝 :) – Saadia