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.
Ovo je demo web aplikacija napravljena unutar Symfony okvirne tehnologije, služi kako bi pokazala preporučeni način korištenja Symfony okvirne tehnologije.
/**
* 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(),
]);
}