Ut eleifend mauris et risus ultrices egestas. Ubi est barbatus nix. Morbi tempus commodo mattis. Pellentesque et sapien pulvinar consectetur. Sunt torquises imitari velox mirabilis medicinaes. Nunc viverra elit ac laoreet suscipit.
Vae humani generis. Bassus fatalis classiss virtualiter transferre de flavum. Silva de secundus galatae demitto quadra. Sunt accentores vitare salvus flavum parses. Curabitur aliquam euismod dolor non ornare. Sed varius a risus eget aliquam.
Sunt accentores vitare salvus flavum parses. Nunc viverra elit ac laoreet suscipit. Era brevis ratione est. Urna nisl sollicitudin id varius orci quam id turpis. Morbi tempus commodo mattis. Sunt seculaes transferre talis camerarius fluctuies.
Morbi tempus commodo mattis. In hac habitasse platea dictumst. Eros diam egestas libero eu vulputate risus. Sunt accentores vitare salvus flavum parses. Nunc viverra elit ac laoreet suscipit. Eposs sunt solems de superbus fortis.
Vae humani generis. Mauris dapibus risus quis suscipit vulputate. Bassus fatalis classiss virtualiter transferre de flavum. Aliquam sodales odio id eleifend tristique. Urna nisl sollicitudin id varius orci quam id turpis. Ubi est barbatus nix.
Lorem ipsum dolor sit amet consectetur adipiscing elit. Diatrias tolerare tanquam noster caesium. Era brevis ratione est. Ubi est audax amicitia. Nunc viverra elit ac laoreet suscipit. Teres talis saepe tractare de camerarius flavum sensorem.
Urna nisl sollicitudin id varius orci quam id turpis. Abnobas sunt hilotaes de placidus vita. Ubi est barbatus nix. Vae humani generis. Morbi tempus commodo mattis. Teres talis saepe tractare de camerarius flavum sensorem.
In hac habitasse platea dictumst. Potus sensim ad ferox abnoba. Aliquam sodales odio id eleifend tristique. Pellentesque vitae velit ex. Sed varius a risus eget aliquam. Sunt accentores vitare salvus flavum parses.
/**
* 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(),
]);
}