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. /**
  20. * @Route("/fortunes")
  21. */
  22. public function fortunes(): Response
  23. {
  24. $fortunes = $this->fortuneRepository->findBy([]);
  25. $fortunes[] = $runtimeFortune = new Fortune();
  26. $runtimeFortune->message = 'Additional fortune added at request time.';
  27. usort(
  28. $fortunes,
  29. static function ($left, $right) {
  30. return $left->message <=> $right->message;
  31. }
  32. );
  33. $content = $this->twig->render(
  34. 'fortunes.html.twig',
  35. [
  36. 'fortunes' => $fortunes,
  37. ]
  38. );
  39. return new Response($content);
  40. }
  41. }