src/Controller/Page/GameController.php line 67

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Page;
  3. use App\Form\GameFilterType;
  4. use App\Renderer\Page;
  5. use App\Templating\Decorator;
  6. use DateInterval;
  7. use DatePeriod;
  8. use DateTime;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use Twig_Error_Loader;
  14. use Twig_Error_Runtime;
  15. use Twig_Error_Syntax;
  16. class GameController extends AbstractController
  17. {
  18.     /**
  19.      * @var Decorator
  20.      */
  21.     protected $decorator;
  22.     /**
  23.      * @var Page
  24.      */
  25.     protected $renderer;
  26.     /**
  27.      * MatchController constructor.
  28.      */
  29.     public function __construct(Decorator $decoratorPage $renderer)
  30.     {
  31.         $this->decorator $decorator;
  32.         $this->renderer $renderer;
  33.     }
  34.     /**
  35.      * @throws Twig_Error_Loader
  36.      * @throws Twig_Error_Runtime
  37.      * @throws Twig_Error_Syntax
  38.      */
  39.     public function indexAction(): Response
  40.     {
  41.         $datePeroid iterator_to_array(
  42.             new DatePeriod(
  43.                 new DateTime(),
  44.                 new DateInterval('P1M'),
  45.                 new DateTime('+1 year')
  46.             )
  47.         );
  48.         $dates = [];
  49.         /** @var DateTime $date */
  50.         foreach ($datePeroid as $date) {
  51.             $dates[$date->format('m-Y')] = $date->getTimestamp();
  52.         }
  53.         $form $this->createForm(GameFilterType::class, null, ['dates' => $dates]);
  54.         return $this->renderer
  55.             ->renderPage(
  56.                 '{matches}',
  57.                 'pages/matches_overview.html.twig',
  58.                 ['form' => $form->createView()]
  59.             );
  60.     }
  61.     /**
  62.      * @throws Twig_Error_Loader
  63.      * @throws Twig_Error_Runtime
  64.      * @throws Twig_Error_Syntax
  65.      */
  66.     #[Route(path'/favorites'name'system_favorites')]
  67.     public function favoritesOverviewAction(Request $request): Response
  68.     {
  69.         return $this
  70.             ->renderer
  71.             ->renderPage(
  72.                 '{favorites}',
  73.                 $this->decorator->getTemplate('pages/match_favorites.html.twig'),
  74.                 []
  75.             );
  76.     }
  77. }