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