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