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