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.
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.
Ut suscipit posuere justo at vulputate. Aliquam sodales odio id eleifend tristique. Mauris dapibus risus quis suscipit vulputate. Era brevis ratione est. Sed varius a risus eget aliquam. Eros diam egestas libero eu vulputate risus. Ubi est audax amicitia.
Lorem ipsum dolor sit amet consectetur adipiscing elit. Ubi est barbatus nix. Sunt seculaes transferre talis camerarius fluctuies. Morbi tempus commodo mattis. Eros diam egestas libero eu vulputate risus. Pellentesque et sapien pulvinar consectetur.
Aliquam sodales odio id eleifend tristique. Potus sensim ad ferox abnoba. Lorem ipsum dolor sit amet consectetur adipiscing elit. Nulla porta lobortis ligula vel egestas. Era brevis ratione est. Mineralis persuadere omnes finises desiderium.
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.
Potus sensim ad ferox abnoba. Pellentesque vitae velit ex. Sunt torquises imitari velox mirabilis medicinaes. Silva de secundus galatae demitto quadra. Eposs sunt solems de superbus fortis. Curabitur aliquam euismod dolor non ornare.
Sunt accentores vitare salvus flavum parses. Era brevis ratione est. Ut suscipit posuere justo at vulputate. Lorem ipsum dolor sit amet consectetur adipiscing elit. Morbi tempus commodo mattis. Ubi est audax amicitia. In hac habitasse platea dictumst.
Ubi est audax amicitia. Potus sensim ad ferox abnoba. Nunc viverra elit ac laoreet suscipit. Sunt seculaes transferre talis camerarius fluctuies. Mineralis persuadere omnes finises desiderium. Diatrias tolerare tanquam noster caesium.
/**
* 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(),
]);
}