src/Controller/TinyKnightGames/Authentication/RegistrationController.php line 20

  1. <?php
  2. namespace App\Controller\TinyKnightGames\Authentication;
  3. use App\Entity\User;
  4. use App\Form\RegistrationFormType;
  5. use App\Service\UserUpkeep;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. class RegistrationController extends AbstractController
  13. {
  14.     public function __construct(private ManagerRegistry $doctrine) {}
  15.     #[Route('/register'name'app_register')]
  16.     public function register(Request $requestUserPasswordHasherInterface $userPasswordHasherInterfaceUserUpkeep $userUpkeep): Response
  17.     {
  18.         $user = new User();
  19.         $form $this->createForm(RegistrationFormType::class, $user);
  20.         $form->handleRequest($request);
  21.         if ($form->isSubmitted() && $form->isValid()) {
  22.             // encode the plain password
  23.             $user->setPassword(
  24.             $userPasswordHasherInterface->hashPassword(
  25.                     $user,
  26.                     $form->get('plainPassword')->getData()
  27.                 )
  28.             );
  29.             $em $this->doctrine->getManager();
  30.             $em->persist($user);
  31.             // Give User starting Equipment
  32.             $userUpkeep->addStartingEquipment($user);
  33. //            $startingEquipment = ['Old Fishing Rod','Old Fishing Lure','Old Hat','Old Shirt', 'Old Tacklebox','Old Boots'];
  34. //            foreach ($startingEquipment as $equipment) {
  35. //                $newEquipment = new InventoryEquipment();
  36. //                $newEquipment->setUser($user);
  37. //                $newEquipment->setEquipment($entityManager->getRepository(Equipment::class)->findOneBy(array('name' => $equipment)));
  38. //                $newEquipment->setQuantity(1);
  39. //                $newEquipment->setIsEquipped(1);
  40. //                $entityManager->persist($newEquipment);
  41. //            }
  42.             // Setup User Catchable Stats
  43.             $userUpkeep->addTemplateStats($user);
  44. //            $catchables = $entityManager->getRepository(Catchable::class)->findAll();
  45. //            foreach($catchables as $catchable) {
  46. //                $stat = new UserRecord();
  47. //                $stat->setUser($user);
  48. //                $stat->setCatchable($catchable);
  49. //                $stat->setCaughtQty(0);
  50. //                $stat->setSalvageQty(0);
  51. //                $stat->setConvertNftQty(0);
  52. //                $entityManager->persist($stat);
  53. //            }
  54.             // Instantiate UserGears for each gear slot (EquipmentCategory) available
  55.             $userUpkeep->addUserGearSlots($user);
  56. //            $gearSlots = $entityManager->getRepository(EquipmentCategory::class)->findAll();
  57. //            foreach ($gearSlots as $gearSlot) {
  58. //                $slot = new UserGear();
  59. //                $slot->setUser($user);
  60. //                $slot->setEquipmentCategory($gearSlot);
  61. //                $entityManager->persist($slot);
  62. //            }
  63.             $em->persist($user);
  64.             $em->flush();
  65.             // do anything else you need here, like send an email
  66.             return $this->redirectToRoute('index');
  67.         }
  68.         return $this->render('registration/register.html.twig', [
  69.             'registrationForm' => $form->createView(),
  70.         ]);
  71.     }
  72. }