src/Controller/RegistrationController.php line 39
<?phpnamespace App\Controller;use App\Entity\User;use App\Form\RegistrationFormType;use App\Repository\UserRepository;use App\Security\CustomAuthenticator;use App\Security\EmailVerifier;use Symfony\Bridge\Twig\Mime\TemplatedEmail;use Symfony\Component\HttpFoundation\RequestStack;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Mailer\Exception\TransportExceptionInterface;use Symfony\Component\Mailer\MailerInterface;use Symfony\Component\Mime\Address;use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\Security\Http\Authentication\UserAuthenticatorInterface;class RegistrationController extends AbstractController{// private EmailVerifier $emailVerifier;// private string $email_sender;private RequestStack $requestStack;public function __construct(RequestStack $requestStack){$this->requestStack = $requestStack;// $this->emailVerifier = $emailVerifier;// $this->email_sender = $email_sender;}/*** @throws TransportExceptionInterface*/#[Route('/enregistrement', name: 'app_register')]public function register(Request $request, UserPasswordHasherInterface $userPasswordHasher, UserRepository $userRepository, MailerInterface $mailer, UserAuthenticatorInterface $authenticator, CustomAuthenticator $customAuthenticator): Response{$user = new User();$form = $this->createForm(RegistrationFormType::class, $user);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {// $session = $this->requestStack->getSession();// $session->remove('path_reservation_new');// encode the plain password$user->setPassword($userPasswordHasher->hashPassword($user,$form->get('password')->getData()));if ($userRepository->save($user)) {//TODO generate a signed url and email it to the user$email = (new TemplatedEmail())->from('mdviaduc@gmail.com')->to(new Address($user->getEmail()))->subject("Les motards du viaduc - Compte créé")->htmlTemplate('emails/register.html.twig')->context(['user' => $user]);$mailer->send($email);$this->addFlash('success', 'Vous êtes bien enregistré, vous allez recevoir un mail de confirmation.');return $authenticator->authenticateUser($user, $customAuthenticator, $request);}}return $this->render('login/register.html.twig', ['registrationForm' => $form->createView(),]);}}