src/Controller/RegistrationController.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\Model\Registration;
  4. use App\Form\Type\RegistrationType;
  5. use Doctrine\ODM\MongoDB\DocumentManager;
  6. use Psr\Log\LoggerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\RedirectResponse;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface;
  13. class RegistrationController extends AbstractController
  14. {
  15.     private DocumentManager $dm;
  16.     private LoggerInterface $logger;
  17.     public function __construct(DocumentManager $dmLoggerInterface $logger)
  18.     {
  19.         $this->dm $dm;
  20.         $this->logger $logger;
  21.     }
  22.     #[Route('/registration'name'registration')]
  23.     public function register(): Response
  24.     {
  25.         $form $this->createForm(RegistrationType::class, new Registration());
  26.         return $this->render('registration\register.html.twig', [
  27.             'form' => $form->createView(),
  28.         ]);
  29.     }
  30.     #[Route('/create_account'name'create_account')]
  31.     public function create(Request $request): RedirectResponse|Response
  32.     {
  33.         $form $this->createForm(RegistrationType::class, new Registration());
  34.         $form->handleRequest($request);
  35.         if ($form->isSubmitted() && $form->isValid()) {
  36.             try {
  37.                 $user $form->getData()->getUser();
  38.                 $user->setEnabled(false);
  39.                 $this->dm->persist($user);
  40.                 $this->dm->flush();
  41.                 return $this->redirect('login');
  42.             } catch (\Exception $exception) {
  43.                 $this->logger->error('Registration error', [$exception->getMessage(), $exception->getCode(),]);
  44.             }
  45.         }
  46.         return $this->render('registration\register.html.twig', [
  47.             'form' => $form->createView()
  48.         ]);
  49.     }
  50. }