<?php namespace App\Controller; use FOS\UserBundle\Controller\RegistrationController as BaseController; use FOS\UserBundle\Event\FilterUserResponseEvent; use FOS\UserBundle\Event\FormEvent; use FOS\UserBundle\Event\GetResponseUserEvent; use FOS\UserBundle\FOSUserEvents; use FOS\UserBundle\Form\Factory\FactoryInterface; use FOS\UserBundle\Model\UserManagerInterface; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\Form\FormEvents; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; class RegistrationController extends BaseController { /** * @param Request $request * * @return Response */ public function registerAction(Request $request) { $user = $this->userManager->createUser(); $user->setEnabled(true); $event = new GetResponseUserEvent($user, $request); $this->eventDispatcher->dispatch(FOSUserEvents::REGISTRATION_INITIALIZE, $event); if (null !== $event->getResponse()) { return $event->getResponse(); } $form = $this->formFactory->createForm(); $form->setData($user); $form->handleRequest($request); if ($form->isSubmitted()) { if ($form->isValid()) { $event = new FormEvent($form, $request); $this->eventDispatcher->dispatch(FOSUserEvents::REGISTRATION_SUCCESS, $event); $this->userManager->updateUser($user); if (null === $response = $event->getResponse()) { $url = $this->generateUrl('fos_user_registration_confirmed'); $response = new RedirectResponse($url); } $this->eventDispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request, $response)); return $response; } $event = new FormEvent($form, $request); $this->eventDispatcher->dispatch(FOSUserEvents::REGISTRATION_FAILURE, $event); if (null !== $response = $event->getResponse()) { return $response; } } return $this->render('@FOSUser/Registration/register.html.twig', array( 'form' => $form->createView(), )); } }