Ubi est audax amicitia. Era brevis ratione est. Curabitur aliquam euismod dolor non ornare. Aliquam sodales odio id eleifend tristique. Ut eleifend mauris et risus ultrices egestas. Eposs sunt solems de superbus fortis. Pellentesque vitae velit ex.
Pellentesque vitae velit ex. Lorem ipsum dolor sit amet consectetur adipiscing elit. Abnobas sunt hilotaes de placidus vita. Bassus fatalis classiss virtualiter transferre de flavum. Curabitur aliquam euismod dolor non ornare. Morbi tempus commodo mattis.
/**
* 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(),
]);
}