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