Aliquam sodales odio id eleifend tristique. Mauris dapibus risus quis suscipit vulputate. Ubi est barbatus nix. Vae humani generis. Nunc viverra elit ac laoreet suscipit. Eros diam egestas libero eu vulputate risus.
Nulla porta lobortis ligula vel egestas. Abnobas sunt hilotaes de placidus vita. Sed varius a risus eget aliquam. Ut suscipit posuere justo at vulputate. Potus sensim ad ferox abnoba. Diatrias tolerare tanquam noster caesium. Ubi est barbatus nix.
Sunt torquises imitari velox mirabilis medicinaes. Ut eleifend mauris et risus ultrices egestas. Vae humani generis. Abnobas sunt hilotaes de placidus vita. Pellentesque et sapien pulvinar consectetur. Nunc viverra elit ac laoreet suscipit.
/**
* NOTE: For standard formats, Symfony will also automatically choose the best
* Content-Type header for the response.
*
* See https://symfony.com/doc/current/routing.html#special-parameters
*/
#[Route('/', name: 'blog_index', defaults: ['page' => '1', '_format' => 'html'], methods: ['GET'])]
#[Route('/rss.xml', name: 'blog_rss', defaults: ['page' => '1', '_format' => 'xml'], methods: ['GET'])]
#[Route('/page/{page}', name: 'blog_index_paginated', defaults: ['_format' => 'html'], requirements: ['page' => Requirement::POSITIVE_INT], methods: ['GET'])]
#[Cache(smaxage: 10)]
public function index(Request $request, int $page, string $_format, PostRepository $posts, TagRepository $tags): Response
{
$tag = null;
if ($request->query->has('tag')) {
$tag = $tags->findOneBy(['name' => $request->query->get('tag')]);
}
$latestPosts = $posts->findLatest($page, $tag);
// Every template name also has two extensions that specify the format and
// engine for that template.
// See https://symfony.com/doc/current/templates.html#template-naming
return $this->render('blog/index.'.$_format.'.twig', [
'paginator' => $latestPosts,
'tagName' => $tag?->getName(),
]);
}