Sunt seculaes transferre talis camerarius fluctuies. Morbi tempus commodo mattis. Era brevis ratione est. Eposs sunt solems de superbus fortis. Nunc viverra elit ac laoreet suscipit. Potus sensim ad ferox abnoba.
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.
Ubi est barbatus nix. Aliquam sodales odio id eleifend tristique. Ut eleifend mauris et risus ultrices egestas. Bassus fatalis classiss virtualiter transferre de flavum. Teres talis saepe tractare de camerarius flavum sensorem.
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.
In hac habitasse platea dictumst. Diatrias tolerare tanquam noster caesium. Era brevis ratione est. Lorem ipsum dolor sit amet consectetur adipiscing elit. Aliquam sodales odio id eleifend tristique. Mineralis persuadere omnes finises desiderium.
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.
Bassus fatalis classiss virtualiter transferre de flavum. Abnobas sunt hilotaes de placidus vita. Era brevis ratione est. Sunt seculaes transferre talis camerarius fluctuies. Sunt torquises imitari velox mirabilis medicinaes.
Potus sensim ad ferox abnoba. Abnobas sunt hilotaes de placidus vita. Nulla porta lobortis ligula vel egestas. Ubi est audax amicitia. Era brevis ratione est. Nunc viverra elit ac laoreet suscipit. Pellentesque et sapien pulvinar consectetur.
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.
/**
* 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(),
]);
}