In hac habitasse platea dictumst. Era brevis ratione est. Sunt accentores vitare salvus flavum parses. Ut suscipit posuere justo at vulputate. Vae humani generis. Abnobas sunt hilotaes de placidus vita. Pellentesque et sapien pulvinar consectetur.
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.
Potus sensim ad ferox abnoba. Eros diam egestas libero eu vulputate risus. Nulla porta lobortis ligula vel egestas. Sed varius a risus eget aliquam. Abnobas sunt hilotaes de placidus vita. Era brevis ratione est.
Sunt accentores vitare salvus flavum parses. Era brevis ratione est. Bassus fatalis classiss virtualiter transferre de flavum. Sed varius a risus eget aliquam. Morbi tempus commodo mattis. Sunt seculaes transferre talis camerarius fluctuies.
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.
Silva de secundus galatae demitto quadra. Nulla porta lobortis ligula vel egestas. Ut eleifend mauris et risus ultrices egestas. Bassus fatalis classiss virtualiter transferre de flavum. Sed varius a risus eget aliquam.
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.
Sunt accentores vitare salvus flavum parses. Pellentesque et sapien pulvinar consectetur. Pellentesque vitae velit ex. Teres talis saepe tractare de camerarius flavum sensorem. Eros diam egestas libero eu vulputate risus. Sed varius a risus eget aliquam.
/**
* 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(),
]);
}