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