src/Application/Front/Controller/BlogPostController.php line 32
<?php
declare(strict_types=1);
namespace App\Application\Front\Controller;
use App\Application\Front\Manager\BlogPostManager;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Routing\Exception\InvalidParameterException;
class BlogPostController extends AbstractController
{
public function __construct(
private readonly BlogPostManager $blogPostManager
)
{
}
#[Route('/blog/', name: 'blog_post_list')]
public function index(Request $request): Response
{
return $this->render('frontend/blog-post/list.html.twig', [
'posts' => $this->blogPostManager->list(),
])->setSharedMaxAge(3600);
}
#[Route('/blog/{slug}', name: 'blog_post')]
public function post(Request $request, string $slug): Response|RedirectResponse
{
$post = $this->blogPostManager->getBySlug($slug);
if (null === $post) {
$this->redirect($this->generateUrl('blog_post_list'));
}
return $this->render('frontend/blog-post/post.html.twig', [
'post' => $post,
])->setSharedMaxAge(3600);
}
}