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