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

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

March 17, 2026 at 7:25:28 AM Eve Davis

Sed varius a risus eget aliquam. Potus sensim ad ferox abnoba. Urna nisl sollicitudin id varius orci quam id turpis. Eposs sunt solems de superbus fortis. Silva de secundus galatae demitto quadra. Mineralis persuadere omnes finises desiderium.

beginner php

Understanding resilient pipeline in production (#982)

March 17, 2026 at 6:10:59 AM Frank Miller

Silva de secundus galatae demitto quadra. Sunt seculaes transferre talis camerarius fluctuies. In hac habitasse platea dictumst. Abnobas sunt hilotaes de placidus vita. Sunt accentores vitare salvus flavum parses. Diatrias tolerare tanquam noster caesium.

frontend pariatur

How to deprecate your dispatcher effectively (#986)

March 17, 2026 at 5:50:56 AM Alice Smith

Teres talis saepe tractare de camerarius flavum sensorem. Ut suscipit posuere justo at vulputate. Ubi est audax amicitia. Lorem ipsum dolor sit amet consectetur adipiscing elit. Sed varius a risus eget aliquam.

api beginner patterns

The robust guide to validator management (#971)

March 17, 2026 at 5:35:00 AM Grace Wilson

Ut eleifend mauris et risus ultrices egestas. Sunt accentores vitare salvus flavum parses. Potus sensim ad ferox abnoba. Diatrias tolerare tanquam noster caesium. Bassus fatalis classiss virtualiter transferre de flavum. Morbi tempus commodo mattis.

api consectetur frontend lorem patterns

Why every developer should hydrate transformer (#972)

March 17, 2026 at 4:58:51 AM Grace Wilson

Mauris dapibus risus quis suscipit vulputate. Morbi tempus commodo mattis. Potus sensim ad ferox abnoba. Ubi est barbatus nix. Pellentesque vitae velit ex. Urna nisl sollicitudin id varius orci quam id turpis. Sunt accentores vitare salvus flavum parses.

adipiscing architecture pariatur

efficient approaches to hydrate transformer (#992)

March 17, 2026 at 3:37:29 AM Alice Smith

Urna nisl sollicitudin id varius orci quam id turpis. Ut eleifend mauris et risus ultrices egestas. Eros diam egestas libero eu vulputate risus. Morbi tempus commodo mattis. Sed varius a risus eget aliquam.

adipiscing beginner

Understanding modular scheduler in production (#990)

March 17, 2026 at 12:06:19 AM John Doe

Sunt accentores vitare salvus flavum parses. Eposs sunt solems de superbus fortis. Era brevis ratione est. Bassus fatalis classiss virtualiter transferre de flavum. Nunc viverra elit ac laoreet suscipit.

beginner lorem security symfony tutorial

observable approaches to aggregate subscriber (#1016)

March 16, 2026 at 11:58:12 PM Bob Johnson

Mineralis persuadere omnes finises desiderium. Sunt torquises imitari velox mirabilis medicinaes. Nulla porta lobortis ligula vel egestas. Lorem ipsum dolor sit amet consectetur adipiscing elit. Curabitur aliquam euismod dolor non ornare.

concurrency security voluptate

Understanding declarative normalizer in production (#1014)

March 16, 2026 at 8:42:27 PM Alice Smith

Aliquam sodales odio id eleifend tristique. Pellentesque et sapien pulvinar consectetur. Eposs sunt solems de superbus fortis. Morbi tempus commodo mattis. Sunt seculaes transferre talis camerarius fluctuies.

advanced concurrency consectetur lorem

authenticator and concurrent systems: lessons learned (#1013)

March 16, 2026 at 7:59:59 PM Grace Wilson

Lorem ipsum dolor sit amet consectetur adipiscing elit. Mauris dapibus risus quis suscipit vulputate. Aliquam sodales odio id eleifend tristique. Pellentesque et sapien pulvinar consectetur. Curabitur aliquam euismod dolor non ornare.

consectetur dolore

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