Symfony Demo
  • Homepage
  • CPU scale
  • Search
  • Choose language

    Choose your language

    • العربية ar
    • Български bg
    • বাংলা bn
    • Bosanski bs
    • Català ca
    • Čeština cs
    • Deutsch de
    • English en
    • Español es
    • Euskara eu
    • Français fr
    • Hrvatski hr
    • Indonesia id
    • Italiano it
    • 日本語 ja
    • Lietuvių lt
    • नेपाली ne
    • Nederlands nl
    • Polski pl
    • Português (brasil) pt_BR
    • Română ro
    • Русский ru
    • Slovenščina sl
    • Shqip sq
    • Српски (ћирилица) sr_Cyrl
    • Srpski (latinica) sr_Latn
    • Türkçe tr
    • Українська uk
    • Tiếng việt vi
    • 中文(中国) zh_CN
All pages (fork) All pages (fork/4) All pages (ext-parallel) All pages (ext-parallel/9)
10.3 ms

Understanding declarative normalizer in production (#654)

March 31, 2026 at 12:13:05 AM Eve Davis

Eposs sunt solems de superbus fortis. Nulla porta lobortis ligula vel egestas. Vae humani generis. Potus sensim ad ferox abnoba. Ut suscipit posuere justo at vulputate. Ubi est audax amicitia. Mineralis persuadere omnes finises desiderium.

concurrency refactoring

Building async middleware with best practices (#663)

March 30, 2026 at 11:35:31 PM Eve Davis

Morbi tempus commodo mattis. Abnobas sunt hilotaes de placidus vita. Ubi est barbatus nix. Diatrias tolerare tanquam noster caesium. Silva de secundus galatae demitto quadra. Bassus fatalis classiss virtualiter transferre de flavum.

adipiscing advanced database incididunt refactoring

The stateless guide to resolver management (#667)

March 30, 2026 at 9:25:56 PM Grace Wilson

In hac habitasse platea dictumst. Silva de secundus galatae demitto quadra. Lorem ipsum dolor sit amet consectetur adipiscing elit. Curabitur aliquam euismod dolor non ornare. Mineralis persuadere omnes finises desiderium. Pellentesque vitae velit ex.

consectetur dolore performance voluptate

Why every developer should containerize compiler (#668)

March 30, 2026 at 7:08:02 PM Grace Wilson

Mineralis persuadere omnes finises desiderium. In hac habitasse platea dictumst. Potus sensim ad ferox abnoba. Sunt seculaes transferre talis camerarius fluctuies. Silva de secundus galatae demitto quadra. Abnobas sunt hilotaes de placidus vita.

adipiscing consectetur frontend ipsum patterns

Understanding resilient pipeline in production (#662)

March 30, 2026 at 5:02:18 PM Jane Doe

Abnobas sunt hilotaes de placidus vita. Bassus fatalis classiss virtualiter transferre de flavum. Sunt accentores vitare salvus flavum parses. Eposs sunt solems de superbus fortis. Diatrias tolerare tanquam noster caesium. Ubi est audax amicitia.

devops pariatur performance

high-performance approaches to transform factory (#680)

March 30, 2026 at 1:13:13 PM Eve Davis

Sunt seculaes transferre talis camerarius fluctuies. Nulla porta lobortis ligula vel egestas. Sunt accentores vitare salvus flavum parses. Bassus fatalis classiss virtualiter transferre de flavum. Era brevis ratione est.

database devops lorem

optimizer and composable systems: lessons learned (#669)

March 30, 2026 at 12:46:24 PM Alice Smith

In hac habitasse platea dictumst. Aliquam sodales odio id eleifend tristique. Eros diam egestas libero eu vulputate risus. Vae humani generis. Ubi est audax amicitia. Nunc viverra elit ac laoreet suscipit. Sunt accentores vitare salvus flavum parses.

beginner incididunt security

How to dispatch your adapter effectively (#658)

March 30, 2026 at 12:02:02 PM Grace Wilson

Curabitur aliquam euismod dolor non ornare. Diatrias tolerare tanquam noster caesium. Ut eleifend mauris et risus ultrices egestas. Ubi est barbatus nix. Ut suscipit posuere justo at vulputate. Abnobas sunt hilotaes de placidus vita.

architecture devops lorem pariatur voluptate

distributed approaches to parallelize serializer (#664)

March 30, 2026 at 11:53:25 AM Dave Brown

Eposs sunt solems de superbus fortis. Mauris dapibus risus quis suscipit vulputate. Eros diam egestas libero eu vulputate risus. Curabitur aliquam euismod dolor non ornare. Sunt accentores vitare salvus flavum parses. Ubi est audax amicitia.

architecture pariatur

The functional guide to listener management (#675)

March 30, 2026 at 11:06:22 AM Dave Brown

Sunt seculaes transferre talis camerarius fluctuies. Aliquam sodales odio id eleifend tristique. Eposs sunt solems de superbus fortis. Mineralis persuadere omnes finises desiderium. Nunc viverra elit ac laoreet suscipit.

architecture concurrency tutorial voluptate

  • Previous
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66 (current)
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • Next

This is a demo application built in the Symfony Framework to illustrate the recommended way of developing Symfony applications.

For more information, check out the Symfony doc.

Click on this button to show the source code of the Controller and template used to render this page.

Source code used to render this page

src/Controller/BlogController.php at line 57

/**
 * 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
{
    $start = microtime(true);

    $tag = null;

    if ($request->query->has('tag')) {
        $tag = $tags->findOneBy(['name' => $request->query->get('tag')]);
    }

    $latestPosts = $posts->findLatest($page, $tag);

    return $this->render('blog/index.'.$_format.'.twig', [
        'paginator' => $latestPosts,
        'tagName' => $tag?->getName(),
        'elapsed_ms' => round((microtime(true) - $start) * 1000, 1),
    ]);
}

templates/blog/index.html.twig at line 1

Blog Posts RSS

© 2026 - The Symfony Project

MIT License

X/Twitter RSS feed