src/Application/Front/Controller/BlogPostController.php line 32

  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Application\Front\Controller;
  4. use App\Application\Front\Manager\BlogPostManager;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\RedirectResponse;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Component\Routing\Exception\InvalidParameterException;
  11. class BlogPostController extends AbstractController
  12. {
  13.     public function __construct(
  14.         private readonly BlogPostManager $blogPostManager
  15.     )
  16.     {
  17.     }
  18.     #[Route('/blog/'name'blog_post_list')]
  19.     public function index(Request $request): Response
  20.     {
  21.         return $this->render('frontend/blog-post/list.html.twig', [
  22.             'posts'  => $this->blogPostManager->list(),
  23.         ])->setSharedMaxAge(3600);
  24.     }
  25.     #[Route('/blog/{slug}'name'blog_post')]
  26.     public function post(Request $requeststring $slug): Response|RedirectResponse
  27.     {
  28.         $post $this->blogPostManager->getBySlug($slug);
  29.         if (null === $post) {
  30.             $this->redirect($this->generateUrl('blog_post_list'));
  31.         }
  32.         return $this->render('frontend/blog-post/post.html.twig', [
  33.             'post'   => $post,
  34.         ])->setSharedMaxAge(3600);
  35.     }
  36. }