Pellentesque vitae velit ex. Abnobas sunt hilotaes de placidus vita. Nunc viverra elit ac laoreet suscipit. Mineralis persuadere omnes finises desiderium. Sunt accentores vitare salvus flavum parses. Potus sensim ad ferox abnoba.
Ut eleifend mauris et risus ultrices egestas. Mineralis persuadere omnes finises desiderium. Ubi est barbatus nix. Sunt torquises imitari velox mirabilis medicinaes. Ut suscipit posuere justo at vulputate. Sed varius a risus eget aliquam.
Vae humani generis. Teres talis saepe tractare de camerarius flavum sensorem. Ut suscipit posuere justo at vulputate. Diatrias tolerare tanquam noster caesium. Sed varius a risus eget aliquam. Abnobas sunt hilotaes de placidus vita.
Ut suscipit posuere justo at vulputate. Sunt seculaes transferre talis camerarius fluctuies. Teres talis saepe tractare de camerarius flavum sensorem. Silva de secundus galatae demitto quadra. Eros diam egestas libero eu vulputate risus.
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.
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.
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.
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.
/**
* 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(),
]);
}