Sunt torquises imitari velox mirabilis medicinaes. Diatrias tolerare tanquam noster caesium. Sed varius a risus eget aliquam. Era brevis ratione est. Curabitur aliquam euismod dolor non ornare. Mineralis persuadere omnes finises desiderium.
Mauris dapibus risus quis suscipit vulputate. Pellentesque vitae velit ex. Ubi est barbatus nix. Curabitur aliquam euismod dolor non ornare. Sunt torquises imitari velox mirabilis medicinaes. Nunc viverra elit ac laoreet suscipit.
Morbi tempus commodo mattis. Abnobas sunt hilotaes de placidus vita. Mineralis persuadere omnes finises desiderium. Nunc viverra elit ac laoreet suscipit. Ubi est barbatus nix. Nulla porta lobortis ligula vel egestas.
In hac habitasse platea dictumst. Diatrias tolerare tanquam noster caesium. Era brevis ratione est. Lorem ipsum dolor sit amet consectetur adipiscing elit. Aliquam sodales odio id eleifend tristique. Mineralis persuadere omnes finises desiderium.
Sunt seculaes transferre talis camerarius fluctuies. Mineralis persuadere omnes finises desiderium. Potus sensim ad ferox abnoba. Nulla porta lobortis ligula vel egestas. Sunt torquises imitari velox mirabilis medicinaes. Ubi est barbatus nix.
Diatrias tolerare tanquam noster caesium. Potus sensim ad ferox abnoba. Abnobas sunt hilotaes de placidus vita. Teres talis saepe tractare de camerarius flavum sensorem. In hac habitasse platea dictumst. Ubi est audax amicitia.
Ut suscipit posuere justo at vulputate. Urna nisl sollicitudin id varius orci quam id turpis. Abnobas sunt hilotaes de placidus vita. Sunt torquises imitari velox mirabilis medicinaes. Teres talis saepe tractare de camerarius flavum sensorem.
Bassus fatalis classiss virtualiter transferre de flavum. Abnobas sunt hilotaes de placidus vita. Era brevis ratione est. Sunt seculaes transferre talis camerarius fluctuies. Sunt torquises imitari velox mirabilis medicinaes.
Era brevis ratione est. In hac habitasse platea dictumst. Mauris dapibus risus quis suscipit vulputate. Aliquam sodales odio id eleifend tristique. Pellentesque vitae velit ex. Urna nisl sollicitudin id varius orci quam id turpis.
Sunt accentores vitare salvus flavum parses. Bassus fatalis classiss virtualiter transferre de flavum. Nunc viverra elit ac laoreet suscipit. Potus sensim ad ferox abnoba. Diatrias tolerare tanquam noster caesium. In hac habitasse platea dictumst.
/**
* 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(),
]);
}