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.8 ms

Why every developer should aggregate subscriber (#236)

April 17, 2026 at 4:38:22 AM Alice Smith

Nunc viverra elit ac laoreet suscipit. Pellentesque et sapien pulvinar consectetur. Ut eleifend mauris et risus ultrices egestas. Potus sensim ad ferox abnoba. Mineralis persuadere omnes finises desiderium. In hac habitasse platea dictumst.

beginner concurrency ipsum

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

April 17, 2026 at 3:52:16 AM Alice Smith

In hac habitasse platea dictumst. Pellentesque et sapien pulvinar consectetur. Ubi est audax amicitia. Urna nisl sollicitudin id varius orci quam id turpis. Morbi tempus commodo mattis. Sunt accentores vitare salvus flavum parses.

advanced dolore security voluptate

container and reactive systems: lessons learned (#245)

April 17, 2026 at 12:54:21 AM Alice Smith

Aliquam sodales odio id eleifend tristique. Bassus fatalis classiss virtualiter transferre de flavum. Teres talis saepe tractare de camerarius flavum sensorem. Urna nisl sollicitudin id varius orci quam id turpis. Potus sensim ad ferox abnoba.

consectetur labore testing

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

April 16, 2026 at 10:20:21 PM Frank Miller

Sunt accentores vitare salvus flavum parses. Mauris dapibus risus quis suscipit vulputate. Mineralis persuadere omnes finises desiderium. Diatrias tolerare tanquam noster caesium. Era brevis ratione est. Silva de secundus galatae demitto quadra.

architecture pariatur

How to dispatch your adapter effectively (#258)

April 16, 2026 at 10:04:32 PM Dave Brown

Lorem ipsum dolor sit amet consectetur adipiscing elit. Sed varius a risus eget aliquam. Nulla porta lobortis ligula vel egestas. Sunt torquises imitari velox mirabilis medicinaes. Pellentesque et sapien pulvinar consectetur.

beginner incididunt labore

optimizer and composable systems: lessons learned (#269)

April 16, 2026 at 9:29:48 PM Grace Wilson

Curabitur aliquam euismod dolor non ornare. Abnobas sunt hilotaes de placidus vita. Sunt seculaes transferre talis camerarius fluctuies. Sed varius a risus eget aliquam. Pellentesque vitae velit ex. Lorem ipsum dolor sit amet consectetur adipiscing elit.

beginner concurrency database performance testing

Why every developer should transform factory (#260)

April 16, 2026 at 9:06:37 PM Frank Miller

Pellentesque vitae velit ex. Ut suscipit posuere justo at vulputate. Curabitur aliquam euismod dolor non ornare. Eposs sunt solems de superbus fortis. Nunc viverra elit ac laoreet suscipit. Sunt torquises imitari velox mirabilis medicinaes.

adipiscing patterns refactoring

Understanding resilient pipeline in production (#262)

April 16, 2026 at 8:35:54 PM Carol Williams

Curabitur aliquam euismod dolor non ornare. Aliquam sodales odio id eleifend tristique. Ut suscipit posuere justo at vulputate. Eros diam egestas libero eu vulputate risus. Vae humani generis. Era brevis ratione est.

lorem patterns php

Understanding modular scheduler in production (#270)

April 16, 2026 at 4:56:47 PM Eve Davis

Nunc viverra elit ac laoreet suscipit. Ut eleifend mauris et risus ultrices egestas. Bassus fatalis classiss virtualiter transferre de flavum. Ubi est barbatus nix. Morbi tempus commodo mattis. Sunt seculaes transferre talis camerarius fluctuies.

architecture devops incididunt php voluptate

How to serialize your scheduler effectively (#250)

April 16, 2026 at 2:35:10 PM Tom Doe

Urna nisl sollicitudin id varius orci quam id turpis. Ubi est audax amicitia. Curabitur aliquam euismod dolor non ornare. Nulla porta lobortis ligula vel egestas. Abnobas sunt hilotaes de placidus vita. Pellentesque et sapien pulvinar consectetur.

api architecture beginner ipsum

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