In hac habitasse platea dictumst. Nunc viverra elit ac laoreet suscipit. Silva de secundus galatae demitto quadra. Mauris dapibus risus quis suscipit vulputate. Ubi est barbatus nix. Mineralis persuadere omnes finises desiderium.
Mauris dapibus risus quis suscipit vulputate. Ut eleifend mauris et risus ultrices egestas. Ubi est barbatus nix. Lorem ipsum dolor sit amet consectetur adipiscing elit. Teres talis saepe tractare de camerarius flavum sensorem. Era brevis ratione est.
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.
Silva de secundus galatae demitto quadra. Nulla porta lobortis ligula vel egestas. Era brevis ratione est. Ut eleifend mauris et risus ultrices egestas. Mineralis persuadere omnes finises desiderium. Abnobas sunt hilotaes de placidus vita.
Ut suscipit posuere justo at vulputate. In hac habitasse platea dictumst. Sunt seculaes transferre talis camerarius fluctuies. Potus sensim ad ferox abnoba. Eros diam egestas libero eu vulputate risus.
Teres talis saepe tractare de camerarius flavum sensorem. Curabitur aliquam euismod dolor non ornare. Sunt seculaes transferre talis camerarius fluctuies. Sunt torquises imitari velox mirabilis medicinaes. Nulla porta lobortis ligula vel egestas.
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.
Ubi est audax amicitia. Ut suscipit posuere justo at vulputate. Nulla porta lobortis ligula vel egestas. Pellentesque et sapien pulvinar consectetur. Curabitur aliquam euismod dolor non ornare. Potus sensim ad ferox abnoba. Morbi tempus commodo mattis.
/**
* 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(),
]);
}