src/Controller/RegistrationController.php line 25

Open in your IDE?
  1. <?php
  2. // src/Controller/RegistrationController.php
  3. namespace App\Controller;
  4. use App\Entity\AppUser;
  5. use App\Form\RegistrationFormType;
  6. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\Request;
  12. /**
  13.  * @Route("/{_locale}/register")
  14.  */
  15. class RegistrationController extends AbstractController
  16. {
  17.     
  18.     /**
  19.      * @Route("/", name="registration_register")
  20.      * @return \Symfony\Component\HttpFoundation\Response
  21.     */
  22.     public function register(Request $requestUserPasswordHasherInterface $passwordHasher)
  23.     {
  24.         // ... e.g. get the user data from a registration form
  25.         $user = new AppUser;
  26.         $plaintextPassword '';
  27.         $em $this->getDoctrine()
  28.                     ->getManager();
  29.         
  30.         $form $this->createForm(RegistrationFormType::class, $user);
  31.         $error_message '';
  32.         if($request->getMethod() == 'POST'){
  33.              $form->handleRequest($request);
  34.             if($form->isValid()){
  35.                 $data $form->getData();
  36.                 
  37.                 $userExist $em->getRepository(AppUser::class)
  38.                                 ->findOneByEmail($data->getEmail());
  39.                 if($userExist != null){
  40.                     $error_message 'Email adresse déjà utilisé';
  41.                 }else{
  42.                      $userExist $em->getRepository(AppUser::class)
  43.                                 ->findOneByUsername($data->getUsername());
  44.                      if($userExist != null){
  45.                         $error_message 'Nom d\'utilisateur adresse déjà utilisé';
  46.                      } else{
  47.                             $plaintextPassword '';
  48.                             // hash the password (based on the security.yaml config for the $user class)
  49.                             $hashedPassword $passwordHasher->hashPassword($user$data->getPlainPassword());
  50.                             $user->setPassword($hashedPassword);
  51.                             $em->persist($user);
  52.                             $em->flush();
  53.                             return $this->redirectToRoute('registration_confirmed', array('username' => $user->getUsername()));
  54.                     }
  55.                 }
  56.             }
  57.         }
  58.         
  59.         return $this->render('registration/register.html.twig', [
  60.         
  61.             'form' => $form->createView(),
  62.             'error_message' => $error_message
  63.         ]);
  64.     }
  65.     /**
  66.      * @Route("/registration-confirmed/{username}", name="registration_confirmed")
  67.      * @return \Symfony\Component\HttpFoundation\Response
  68.     */
  69.     public function registrationConfirmedAction(Request $requestUserPasswordHasherInterface $passwordHasherAppUser $user)
  70.     {
  71.         // ... e.g. get the user data from a registration form
  72.         
  73.         
  74.         return $this->render('registration/confirmed.html.twig', [
  75.         
  76.             'user' => $user
  77.         ]);
  78.     }
  79. }