src/Controller/FizzbuzzController.php line 80

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Fizzbuzz;
  4. use App\Form\FizzbuzzType;
  5. use App\Repository\FizzBuzzRepository;
  6. use App\Tools\FizzBuzzTool;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use DateTime;
  12. #[Route('/')]
  13. class FizzbuzzController extends AbstractController
  14. {
  15.     /**
  16.      * @var FizzBuzzTool
  17.      */
  18.     private $formatter;
  19.     /**
  20.      * @param FizzBuzzTool $formatter
  21.      */
  22.     public function __construct(
  23.         FizzBuzzTool $formatter
  24.     )
  25.     {
  26.         $this->formatter $formatter;
  27.     }
  28.     #[Route('/'name'app_fizzbuzz_index'methods: ['GET'])]
  29.     public function index(FizzBuzzRepository $fizzBuzzRepository): Response
  30.     {
  31.         return $this->render('fizzbuzz/index.html.twig');
  32.     }
  33.     #[Route('/desafio1/fizz/buzz'name'app_fizzbuzz_desafio1'methods: ['GET''POST'])]
  34.     public function desafio1(): Response
  35.     {
  36.         return $this->render('fizzbuzz/desafio1.html.twig');
  37.     }
  38.     #[Route('/desafio2'name'app_fizzbuzz_list'methods: ['GET''POST'])]
  39.     public function list(FizzBuzzRepository $fizzBuzzRepository): Response
  40.     {
  41.         return $this->render('fizzbuzz/list.html.twig', [
  42.             'fizzbuzzs' => $fizzBuzzRepository->findAll(),
  43.         ]);
  44.     }
  45.     #[Route('/new'name'app_fizzbuzz_new'methods: ['GET''POST'])]
  46.     public function new(Request $requestFizzBuzzRepository $fizzBuzzRepository): Response
  47.     {
  48.         $fizzbuzz = new Fizzbuzz();
  49.         $form $this->createForm(FizzbuzzType::class, $fizzbuzz);
  50.         $form->handleRequest($request);
  51.         if ($form->isSubmitted() && $form->isValid()) {
  52.             $date = new DateTime('now');
  53.             $fizzbuzz->setDatehour($date);
  54.             $fizzbuzz->setFizzbuzztext(
  55.                 $this->formatter->fizzBuzzString(
  56.                     $fizzbuzz->getStartnumber(),
  57.                     $fizzbuzz->getFinalnumber()
  58.             ));
  59.             $fizzBuzzRepository->add($fizzbuzztrue);
  60.             return $this->redirectToRoute('app_fizzbuzz_list', [], Response::HTTP_SEE_OTHER);
  61.         }
  62.         return $this->renderForm('fizzbuzz/new.html.twig', [
  63.             'fizzbuzz' => $fizzbuzz,
  64.             'form' => $form,
  65.         ]);
  66.     }
  67.     #[Route('/{id}'name'app_fizzbuzz_show'methods: ['GET'])]
  68.     public function show(Fizzbuzz $fizzbuzz): Response
  69.     {
  70.         return $this->render('fizzbuzz/show.html.twig', [
  71.             'fizzbuzz' => $fizzbuzz,
  72.         ]);
  73.     }
  74.     #[Route('/{id}/edit'name'app_fizzbuzz_edit'methods: ['GET''POST'])]
  75.     public function edit(Request $requestFizzbuzz $fizzbuzzFizzBuzzRepository $fizzBuzzRepository): Response
  76.     {
  77.         $form $this->createForm(FizzbuzzType::class, $fizzbuzz);
  78.         $form->handleRequest($request);
  79.         if ($form->isSubmitted() && $form->isValid()) {
  80.             $date = new DateTime('now');
  81.             $fizzbuzz->setDatehour($date);
  82.             $fizzbuzz->setFizzbuzztext(
  83.                 $this->formatter->fizzBuzzString(
  84.                     $fizzbuzz->getStartnumber(),
  85.                     $fizzbuzz->getFinalnumber()
  86.             ));
  87.             $fizzBuzzRepository->add($fizzbuzztrue);
  88.             return $this->redirectToRoute('app_fizzbuzz_list', [], Response::HTTP_SEE_OTHER);
  89.         }
  90.         return $this->renderForm('fizzbuzz/edit.html.twig', [
  91.             'fizzbuzz' => $fizzbuzz,
  92.             'form' => $form,
  93.         ]);
  94.     }
  95.     #[Route('/{id}'name'app_fizzbuzz_delete'methods: ['POST'])]
  96.     public function delete(Request $requestFizzbuzz $fizzbuzzFizzBuzzRepository $fizzBuzzRepository): Response
  97.     {
  98.         if ($this->isCsrfTokenValid('delete'.$fizzbuzz->getId(), $request->request->get('_token'))) {
  99.             $fizzBuzzRepository->remove($fizzbuzztrue);
  100.         }
  101.         return $this->redirectToRoute('app_fizzbuzz_list', [], Response::HTTP_SEE_OTHER);
  102.     }
  103. }