FortunesController.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Fortune;
  4. use App\Repository\FortuneRepository;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Twig\Environment;
  8. class FortunesController
  9. {
  10. /** @var Environment */
  11. private $twig;
  12. /** @var FortuneRepository */
  13. private $fortuneRepository;
  14. public function __construct(Environment $twig, FortuneRepository $fortuneRepository)
  15. {
  16. $this->twig = $twig;
  17. $this->fortuneRepository = $fortuneRepository;
  18. }
  19. #[Route('/fortunes')]
  20. public function fortunes(): Response
  21. {
  22. $fortunes = $this->fortuneRepository->findBy([]);
  23. $fortunes[] = $runtimeFortune = new Fortune();
  24. $runtimeFortune->message = 'Additional fortune added at request time.';
  25. usort(
  26. $fortunes,
  27. static function ($left, $right) {
  28. return $left->message <=> $right->message;
  29. }
  30. );
  31. $content = $this->twig->render(
  32. 'fortunes.html.twig',
  33. [
  34. 'fortunes' => $fortunes,
  35. ]
  36. );
  37. return new Response($content);
  38. }
  39. }