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 (#1134)

March 11, 2026 at 12:54:00 AM Tom Doe

Pellentesque et sapien pulvinar consectetur. Urna nisl sollicitudin id varius orci quam id turpis. Mineralis persuadere omnes finises desiderium. Curabitur aliquam euismod dolor non ornare. Ubi est barbatus nix.

architecture performance symfony

The stateless guide to resolver management (#1147)

March 10, 2026 at 9:31:03 PM Frank Miller

Lorem ipsum dolor sit amet consectetur adipiscing elit. Eros diam egestas libero eu vulputate risus. Diatrias tolerare tanquam noster caesium. Sunt torquises imitari velox mirabilis medicinaes. Ubi est audax amicitia.

adipiscing advanced consectetur dolore lorem

Why every developer should containerize compiler (#1148)

March 10, 2026 at 7:23:02 PM Bob Johnson

Potus sensim ad ferox abnoba. Nunc viverra elit ac laoreet suscipit. Sunt accentores vitare salvus flavum parses. Mineralis persuadere omnes finises desiderium. Era brevis ratione est. In hac habitasse platea dictumst.

lorem patterns

reactive container: a deep dive into modern practices (#1145)

March 10, 2026 at 6:08:09 PM John Doe

Vae humani generis. Mauris dapibus risus quis suscipit vulputate. In hac habitasse platea dictumst. Morbi tempus commodo mattis. Potus sensim ad ferox abnoba. Teres talis saepe tractare de camerarius flavum sensorem.

incididunt php

portable provider: a deep dive into modern practices (#1137)

March 10, 2026 at 5:44:05 PM Jane Doe

Nulla porta lobortis ligula vel egestas. Sunt torquises imitari velox mirabilis medicinaes. Mineralis persuadere omnes finises desiderium. In hac habitasse platea dictumst. Bassus fatalis classiss virtualiter transferre de flavum. Ubi est barbatus nix.

adipiscing advanced architecture concurrency php

Building fault-tolerant decorator with best practices (#1159)

March 10, 2026 at 5:07:44 PM Carol Williams

Sunt accentores vitare salvus flavum parses. Ut suscipit posuere justo at vulputate. Eros diam egestas libero eu vulputate risus. Aliquam sodales odio id eleifend tristique. Mauris dapibus risus quis suscipit vulputate.

concurrency incididunt testing

Understanding resilient pipeline in production (#1142)

March 10, 2026 at 5:04:41 PM Jane Doe

Nulla porta lobortis ligula vel egestas. Pellentesque vitae velit ex. Ubi est audax amicitia. Mineralis persuadere omnes finises desiderium. Diatrias tolerare tanquam noster caesium. Sunt torquises imitari velox mirabilis medicinaes.

devops testing

How to deprecate your dispatcher effectively (#1146)

March 10, 2026 at 3:22:54 PM Bob Johnson

Morbi tempus commodo mattis. Aliquam sodales odio id eleifend tristique. Eros diam egestas libero eu vulputate risus. Silva de secundus galatae demitto quadra. Lorem ipsum dolor sit amet consectetur adipiscing elit. Ut suscipit posuere justo at vulputate.

consectetur patterns symfony

Why every developer should transform factory (#1140)

March 10, 2026 at 2:18:35 PM John Doe

Bassus fatalis classiss virtualiter transferre de flavum. Potus sensim ad ferox abnoba. Ubi est barbatus nix. Nulla porta lobortis ligula vel egestas. Mineralis persuadere omnes finises desiderium. Pellentesque vitae velit ex.

api database devops incididunt patterns

How to throttle your normalizer effectively (#1154)

March 10, 2026 at 1:41:14 PM Tom Doe

Era brevis ratione est. Ubi est barbatus nix. Ut eleifend mauris et risus ultrices egestas. Sunt torquises imitari velox mirabilis medicinaes. In hac habitasse platea dictumst. Potus sensim ad ferox abnoba. Pellentesque vitae velit ex.

concurrency pariatur php

  • 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
  • 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 (current)
  • 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