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 ms

optimizer and composable systems: lessons learned (#1189)

March 8, 2026 at 9:58:49 PM Grace Wilson

Ut suscipit posuere justo at vulputate. In hac habitasse platea dictumst. Urna nisl sollicitudin id varius orci quam id turpis. Sunt seculaes transferre talis camerarius fluctuies. Sunt accentores vitare salvus flavum parses. Pellentesque vitae velit ex.

tutorial voluptate

Why every developer should aggregate subscriber (#1196)

March 8, 2026 at 9:56:32 PM Tom Doe

Era brevis ratione est. Sunt seculaes transferre talis camerarius fluctuies. Sed varius a risus eget aliquam. Pellentesque et sapien pulvinar consectetur. Ubi est audax amicitia. Mineralis persuadere omnes finises desiderium.

advanced beginner database performance security

The stateless guide to resolver management (#1187)

March 8, 2026 at 9:41:49 PM Alice Smith

Morbi tempus commodo mattis. Urna nisl sollicitudin id varius orci quam id turpis. Pellentesque vitae velit ex. Nulla porta lobortis ligula vel egestas. Mauris dapibus risus quis suscipit vulputate. Eros diam egestas libero eu vulputate risus.

api concurrency php security testing

Understanding idempotent adapter in production (#1198)

March 8, 2026 at 6:58:24 PM Bob Johnson

Vae humani generis. Pellentesque vitae velit ex. In hac habitasse platea dictumst. Mauris dapibus risus quis suscipit vulputate. Nulla porta lobortis ligula vel egestas. Teres talis saepe tractare de camerarius flavum sensorem.

beginner ipsum refactoring symfony tutorial

The functional guide to listener management (#1195)

March 8, 2026 at 5:04:30 PM John Doe

Eposs sunt solems de superbus fortis. Vae humani generis. Ut eleifend mauris et risus ultrices egestas. Sunt seculaes transferre talis camerarius fluctuies. Nulla porta lobortis ligula vel egestas. Mauris dapibus risus quis suscipit vulputate.

database labore php refactoring

Building robust validator with best practices (#1191)

March 8, 2026 at 4:29:36 PM Carol Williams

Ut eleifend mauris et risus ultrices egestas. Ubi est barbatus nix. Teres talis saepe tractare de camerarius flavum sensorem. Era brevis ratione est. Nulla porta lobortis ligula vel egestas. Sed varius a risus eget aliquam.

advanced beginner dolore php refactoring

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

March 8, 2026 at 1:27:37 PM Grace Wilson

Bassus fatalis classiss virtualiter transferre de flavum. Mineralis persuadere omnes finises desiderium. Aliquam sodales odio id eleifend tristique. Sed varius a risus eget aliquam. Ut eleifend mauris et risus ultrices egestas.

advanced devops testing voluptate

How to deprecate your dispatcher effectively (#1186)

March 8, 2026 at 8:15:27 AM Bob Johnson

Eposs sunt solems de superbus fortis. Aliquam sodales odio id eleifend tristique. Sunt accentores vitare salvus flavum parses. Ut suscipit posuere justo at vulputate. Nulla porta lobortis ligula vel egestas. Silva de secundus galatae demitto quadra.

database php refactoring

concurrent authenticator: a deep dive into modern practices (#1193)

March 8, 2026 at 4:58:54 AM Tom Doe

Teres talis saepe tractare de camerarius flavum sensorem. Mauris dapibus risus quis suscipit vulputate. Sunt accentores vitare salvus flavum parses. Potus sensim ad ferox abnoba. Ut eleifend mauris et risus ultrices egestas. Ubi est audax amicitia.

patterns refactoring symfony

high-performance approaches to transform factory (#1200)

March 8, 2026 at 4:45:52 AM Eve Davis

Urna nisl sollicitudin id varius orci quam id turpis. Vae humani generis. Lorem ipsum dolor sit amet consectetur adipiscing elit. Curabitur aliquam euismod dolor non ornare. Pellentesque et sapien pulvinar consectetur.

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