Sunt accentores vitare salvus flavum parses. Era brevis ratione est. Ut suscipit posuere justo at vulputate. Lorem ipsum dolor sit amet consectetur adipiscing elit. Morbi tempus commodo mattis. Ubi est audax amicitia. In hac habitasse platea dictumst.
Ubi est audax amicitia. Potus sensim ad ferox abnoba. Nunc viverra elit ac laoreet suscipit. Sunt seculaes transferre talis camerarius fluctuies. Mineralis persuadere omnes finises desiderium. Diatrias tolerare tanquam noster caesium.
Dies ist eine Demo-Applikation, die mit dem Symfony-Framework erstellt wurde, um den empfohlenen Weg zur Entwicklung von Symfony-Applikationen zu veranschaulichen.
/**
* 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(),
]);
}