SymfonyCon Amsterdam 2025, our next annual international Symfony conference, will take place on:
The schedule is available here, as well as the complete list of workshop topics.
Stay in the look out for more to come!👀
We’re thrilled to welcome Mitchel Vroege, Developer, as a speaker with the talk “Symfony and Rust: Accelerating Hot Paths with FFI”
"I'm not going to tell you to rebuild your application in Rust. At all. I love Symfony (and PHP), we all do. But there are times when we hit a performance roadblock. Or run out of memory. Maybe even both.
In this talk, we’ll replace part of our logic with a native helper using PHP’s FFI and Rust. We’ll explore performance gains, show practical implementation steps, and discuss when native code makes sense. And finally, I’ll share a skeleton project so you can start experimenting in tonight."
🎟️ Register now and choose the ticket that suits you the best among workshop, conference and combo ticket. Check all the details and get your ticket!
🖥️ Check out the exciting 13 workshop topics on this page.
🎤 Explore the great lineup of conference talks here, featuring top-notch expert speakers as Fabien Potencier, Christopher Hertel, Robin Chalas, Tobias Nyholm, Andreas Braun, Anna Filina, Pauline Vos, Stefan Koopmanschap, Nicolas Grekas, Iain Cambridge, Sebastian Bergmann, Konrad Oboza, Alexandre Salome, Antoine Bluchet, Kévin Dunglas, Rob Allen, Mathias Arlaud, Benjamin Eberlei, Viktor Pikaev, Valentin Rusev Valentin Rusev, Romain Neutron and many others...
🫵 Participate in the Unconference track, a participant-driven format where attendees shape the content and discussions in real-time. Have a topic you're passionate about? Claim your slot by emailing us at events@symfony.com
and set the stage for an unforgettable experience. Each unconference talk lasts 20 minutes with a screen and projector available on both days.
🎉 Celebrate Symfony’s 20th Anniversary with us at the Kanarie Club! Join us for an unforgettable evening of drinks, music, and good vibes on Thursday, November 27 from 7:30 to 10:30 pm at the vibrant Kanarie Club, right in the heart of De Hallen — a lively food court with 21 amazing stands (grab your favorite bites, bring them to the Kanarie club!) Dress as you like or simply add a touch of fun!✨
💻 Save the date for the Symfony hackathon on November 29. Everyone is welcome to join the hackday! Whether you're an experienced contributor or new to the community, your participation is highly valued as it brings a fresh perspective! More details are available here. The hackathon will be hosted in Volkshotel Amsterdam from 09:30 a.m. to 3:00 p.m. CET. thanks to the support of Baksla.sh.
📖 Read our attendee guide for venue, accommodation, and transportation details.
👕 Complete your Symfony Live profile to inform us of your dietary preferences, T-shirt size and talk preferences!
Joins us online!
💡Follow the "conference" blog posts to not miss anything!
Want the latest Symfony updates? Follow us and tune in from wherever you are 🌎
Symfony already provides the is_granted()
and is_granted_for_user()
Twig functions so you can check permissions with voters in your templates.
These functions return a boolean value indicating whether the current or
specified user has the given security attribute.
In Symfony 7.4, we're adding two new Twig functions: access_decision()
and
access_decision_for_user()
. They return an AccessDecision object, a DTO
that stores the access verdict, the collection of votes, the resulting message
(for example, "Access granted" or a custom access-denied message), and more.
{% set voter_decision = access_decision('post_edit', post) %}
{% if voter_decision.isGranted() %}
{# ... #}
{% else %}
{# before showing voter messages to end users, make sure it's safe to do so #}
<p>{{ voter_decision.message }}</p>
{% endif %}
In Symfony 7.3, we introduced the Vote
object as part of a feature that
explains security voter decisions. In Symfony 7.4, we're extending it so you can
attach arbitrary metadata to each vote. Inside your security voter, use the
extraData
property of the Vote
object to add any custom value:
use Symfony\Component\Security\Core\Authorization\Voter\Vote;
use Symfony\Component\Security\Core\Authorization\Voter\Voter;
// ...
class BlogPostVoter extends Voter
{
// ...
protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token, ?Vote $vote = null): bool
{
// ...
// values can be of any type, not only strings
$vote->extraData['some_key'] = 'some value';
}
}
You can use this new feature, for example, when defining a custom access decision strategy.
By default, Symfony votes can only grant, deny, or abstain, and all votes
have equal weight. In a custom strategy, you could assign a score or weight to
each vote (for example, $vote->extraData['score'] = 10;
) and use that value
when aggregating results:
// src/Security/MyCustomAccessDecisionStrategy.php
use Symfony\Component\Security\Core\Authorization\Strategy\AccessDecisionStrategyInterface;
class MyCustomAccessDecisionStrategy implements AccessDecisionStrategyInterface
{
public function decide(\Traversable $results, $accessDecision = null): bool
{
$score = 0;
foreach ($results as $key => $result) {
$vote = $accessDecision->votes[$key];
if (array_key_exists('score', $vote->extraData)) {
$score += $vote->extraData['score'];
} else {
$score += $vote->result;
}
}
// ...
}
}
This week, 41 pull requests were merged (30 in code and 11 in docs) and 31 issues were closed (24 in code and 7 in docs). Excluding merges, 23 authors made additions and deletions. See details for code and docs.
These are some of the most recent Symfony job offers:
You can publish a Symfony job offer for free on symfony.com.
SymfonyCasts is the official way to learn Symfony. Select a track for a guided path through 100+ video tutorial courses about Symfony, PHP and JavaScript.
This week, SymfonyCasts published the following updates:
Symfony has supported three different configuration formats since day one: PHP, YAML, and XML. All formats provide nearly identical capabilities and equivalent performance because they are compiled back to PHP before runtime.
In recent Symfony versions, XML support was disabled by default for packages and
routes. To re-enable it, you had to update the configureContainer()
and/or
configureRoutes()
methods in the src/Kernel.php
file.
In Symfony 7.4, XML configuration is officially deprecated, and starting with Symfony 8.0, it will no longer be supported. YAML will remain the default format used by Symfony and by the Symfony recipes, but you can also use PHP if you prefer a fully code-based configuration.
For reusable Symfony bundles, XML remains a popular format since it was the officially recommended option for many years. You can use the XML config to PHP tool to automatically convert your bundle's XML configuration to PHP.
Alongside this deprecation, Symfony 7.4 enhances the remaining formats with important new features.
JSON schemas describe the structure, constraints, and data types of JSON documents and JSON-compatible formats such as YAML. Combined with a schema-aware editor or validator (like the ones built into modern IDEs such as PHPStorm) they enable real-time validation and autocompletion.
In Symfony 7.4, new schemas are available for services and routes configuration,
as well as for validation and serialization metadata. That's why updated
Symfony recipes now include the following $schema:
line at the top of YAML
files to declare the corresponding schema:
# config/services.yaml
# yaml-language-server: $schema=../vendor/symfony/dependency-injection/Loader/schema/services.schema.json
parameters:
# ...
services:
# ...
# config/routes.yaml
# yaml-language-server: $schema=../vendor/symfony/routing/Loader/schema/routing.schema.json
controllers:
# ...
We're also exploring new ways to make PHP configuration more expressive. In Symfony 7.4, we're introducing advanced array shapes, which allow you to configure your application using structures similar to YAML but written in pure PHP.
This lets you define routes in PHP like this:
// config/routes.php
namespace Symfony\Config;
return new RoutesConfig([
'route1_name' => ['path' => '/path1'],
'when@dev' => new RoutesConfig([
'route2_name' => ['path' => '/path2'],
]),
]);
And define configuration as follows:
// config/packages/framework.php
namespace Symfony\Config;
return [
new FrameworkConfig([
'secret' => env('APP_SECRET'),
'esi' => true,
'session' => [
'handler_id' => null,
'cookie_secure' => 'auto',
'cookie_samesite' => 'lax',
],
]),
];
These array shapes can be leveraged by static analyzers and IDEs for better insight and autocompletion, although the exact experience will depend on your editor.
SymfonyCon Amsterdam 2025, our next annual international Symfony conference, will take place on:
The schedule is available here, as well as the complete list of workshop topics.
Stay in the look out for more to come!👀
We’re thrilled to welcome Paul Dragoonis, (@dr4goonis), CTO, ByteHire, as a speaker with the talk “From Runtime to Resilience: Scaling PHP”
"Scaling PHP is about resilience and performance, not just traffic. This talk covers live demos of optimising the PHP runtime, tuning configs, and measuring FrankenPHP and PHP-FPM with tools like OpenMetrics, Grafana, and k6. Additionally, you’ll learn to avoid design flaws, architect for scalability, and gain the mindset to confidently scale PHP applications."
🎟️ Register now and choose the ticket that suits you the best among workshop, conference and combo ticket. Check all the details and get your ticket!
🖥️ Check out the exciting 13 workshop topics on this page.
🎤 Explore the great lineup of conference talks here, featuring top-notch expert speakers as Fabien Potencier, Christopher Hertel, Robin Chalas, Tobias Nyholm, Andreas Braun, Anna Filina, Pauline Vos, Stefan Koopmanschap, Nicolas Grekas, Iain Cambridge, Sebastian Bergmann, Konrad Oboza, Alexandre Salome, Antoine Bluchet, Kévin Dunglas, Rob Allen, Mathias Arlaud, Benjamin Eberlei, Viktor Pikaev, Valentin Rusev Valentin Rusev, Romain Neutron and many others...
🫵 Participate in the Unconference track, a participant-driven format where attendees shape the content and discussions in real-time. Have a topic you're passionate about? Claim your slot by emailing us at events@symfony.com
and set the stage for an unforgettable experience. Each unconference talk lasts 20 minutes with a screen and projector available on both days.
🎉 Celebrate Symfony’s 20th Anniversary with us at the Kanarie Club! Join us for an unforgettable evening of drinks, music, and good vibes on Thursday, November 27 from 7:30 to 10:30 pm at the vibrant Kanarie Club, right in the heart of De Hallen — a lively food court with 21 amazing stands (grab your favorite bites, bring them to the Kanarie club!) Dress as you like or simply add a touch of fun!✨
💻 Save the date for the Symfony hackathon on November 29. Everyone is welcome to join the hackday! Whether you're an experienced contributor or new to the community, your participation is highly valued as it brings a fresh perspective! More details are available here. The hackathon will be hosted in Volkshotel Amsterdam from 09:30 a.m. to 3:00 p.m. CET. thanks to the support of Baksla.sh.
📖 Read our attendee guide for venue, accommodation, and transportation details.
👕 Complete your Symfony Live profile to inform us of your dietary preferences, T-shirt size and talk preferences!
Joins us online!
💡Follow the "conference" blog posts to not miss anything!
Want the latest Symfony updates? Follow us and tune in from wherever you are 🌎
SymfonyCon Amsterdam 2025, our next annual international Symfony conference, will take place on:
The schedule is available here, as well as the complete list of workshop topics.
Stay in the look out for more to come!👀
We’re thrilled to welcome Valentin Rusev, as a speaker with the talk “Inside the first Git commit: powerful ideas behind a minimal start”
"In this talk, we will dissect the first Git commit by Linus Torvalds and uncover the powerful software design principles embedded in its earliest code. We will explore how Git’s choice of data structures (like immutable content-addressed blobs and trees) laid the foundation for reliability, correctness, and performance.
We will also highlight how Git is a brilliant embodiment of Unix philosophy: small, composable tools; reliance on the filesystem; text-based formats; and simplicity in interface with power in composition. Even in its minimal form, Git introduced key operations such as SHA-1 hashing, snapshot storage, and a filesystem-based object database that collectively reflect deep design clarity."
🎟️ Register now and choose the ticket that suits you the best among workshop, conference and combo ticket. Check all the details and get your ticket!
🖥️ Check out the exciting 13 workshop topics on this page.
🎤 Explore the great lineup of conference talks here, featuring top-notch expert speakers as Fabien Potencier, Christopher Hertel, Robin Chalas, Tobias Nyholm, Andreas Braun, Anna Filina, Pauline Vos, Stefan Koopmanschap, Nicolas Grekas, Iain Cambridge, Sebastian Bergmann, Konrad Oboza, Alexandre Salome, Antoine Bluchet, Kévin Dunglas, Rob Allen, Mathias Arlaud, Benjamin Eberlei, Viktor Pikaev, Valentin Rusev Valentin Rusev, Romain Neutron and many others...
🫵 Participate in the Unconference track, a participant-driven format where attendees shape the content and discussions in real-time. Have a topic you're passionate about? Claim your slot by emailing us at events@symfony.com
and set the stage for an unforgettable experience. Each unconference talk lasts 20 minutes with a screen and projector available on both days.
🎉 Celebrate Symfony’s 20th Anniversary with us at the Kanarie Club! Join us for an unforgettable evening of drinks, music, and good vibes on Thursday, November 27 from 7:30 to 10:30 pm at the vibrant Kanarie Club, right in the heart of De Hallen — a lively food court with 21 amazing stands (grab your favorite bites, bring them to the Kanarie club!) Dress as you like or simply add a touch of fun!✨
💻 Save the date for the Symfony hackathon on November 29. Everyone is welcome to join the hackday! Whether you're an experienced contributor or new to the community, your participation is highly valued as it brings a fresh perspective! More details are available here. The hackathon will be hosted in Volkshotel Amsterdam from 09:30 a.m. to 3:00 p.m. CET. thanks to the support of Baksla.sh.
📖 Read our attendee guide for venue, accommodation, and transportation details.
👕 Complete your Symfony Live profile to inform us of your dietary preferences, T-shirt size and talk preferences!
Joins us online!
💡Follow the "conference" blog posts to not miss anything!
Want the latest Symfony updates? Follow us and tune in from wherever you are 🌎
SymfonyCon Amsterdam 2025, our next annual international Symfony conference, will take place on:
The schedule is available here, as well as the complete list of workshop topics.
Stay in the look out for more to come!👀
We’re thrilled to welcome Antoine Bluchet, (@s0yuka), Lead developper, Les- Tilleuls.coop, as a speaker with the talk “2025: Performance Milestone for the Symfony Ecosystem”
"The Symfony ecosystem is constantly evolving to ease developer experience and optimize application efficiency. New Symfony components, such as JSON Streamer, are at the forefront of this evolution, raising the bar for modern web application performance.
We'll take a modern application built with API Platform and supercharge it, showcasing how this new component, along with the efficiency of FrankenPHP in worker mode, can be used to achieve significant performance gains. This talk will provide concrete benchmarks and practical use cases, demonstrating how you can build faster, more efficient applications."
🎟️ Register now and choose the ticket that suits you the best among workshop, conference and combo ticket. Check all the details and get your ticket!
🖥️ Check out the exciting 13 workshop topics on this page.
🎤 Explore the great lineup of conference talks here, featuring top-notch expert speakers as Fabien Potencier, Christopher Hertel, Robin Chalas, Tobias Nyholm, Andreas Braun, Anna Filina, Pauline Vos, Stefan Koopmanschap, Nicolas Grekas, Iain Cambridge, Sebastian Bergmann, Konrad Oboza, Alexandre Salome, Antoine Bluchet, Kévin Dunglas, Rob Allen, Mathias Arlaud, Benjamin Eberlei, Viktor Pikaev, Valentin Rusev Valentin Rusev, Romain Neutron and many others...
🫵 Participate in the Unconference track, a participant-driven format where attendees shape the content and discussions in real-time. Have a topic you're passionate about? Claim your slot by emailing us at events@symfony.com
and set the stage for an unforgettable experience. Each unconference talk lasts 20 minutes with a screen and projector available on both days.
🎉 Celebrate Symfony’s 20th Anniversary with us at the Kanarie Club! Join us for an unforgettable evening of drinks, music, and good vibes on Thursday, November 27 from 7:30 to 10:30 pm at the vibrant Kanarie Club, right in the heart of De Hallen — a lively food court with 21 amazing stands (grab your favorite bites, bring them to the Kanarie club!) Dress as you like or simply add a touch of fun!✨
💻 Save the date for the Symfony hackathon on November 29. Everyone is welcome to join the hackday! Whether you're an experienced contributor or new to the community, your participation is highly valued as it brings a fresh perspective! More details are available here. The hackathon will be hosted in Volkshotel Amsterdam from 09:30 a.m. to 3:00 p.m. CET. thanks to the support of Baksla.sh.
📖 Read our attendee guide for venue, accommodation, and transportation details.
👕 Complete your Symfony Live profile to inform us of your dietary preferences, T-shirt size and talk preferences!
Joins us online!
💡Follow the "conference" blog posts to not miss anything!
Want the latest Symfony updates? Follow us and tune in from wherever you are 🌎
SymfonyCon Amsterdam 2025, our next annual international Symfony conference, will take place on:
The schedule is available here, as well as the complete list of workshop topics.
Stay in the look out for more to come!👀
We’re thrilled to welcome Soner Sayakci, (@Shyim97), Developer, shopware AG, as a speaker with the talk “Installing Symfony with Symfony using the Browser”
"Composer is the go-to tool for distributing Symfony applications—but when your target audience includes end users or less technical stakeholders, the CLI can be a barrier. What if installing a Symfony app was as simple as uploading a single file to your server and opening it in a browser? In this talk, I'll walk you through how we use Symfony to install Symfony applications packaged as a single, self-contained PHP file with just a web interface in the browser."
🎟️ Register now and choose the ticket that suits you the best among workshop, conference and combo ticket. Check all the details and get your ticket!
🖥️ Check out the exciting 13 workshop topics on this page.
🎤 Explore the great lineup of conference talks here, featuring top-notch expert speakers as Fabien Potencier, Christopher Hertel, Robin Chalas, Tobias Nyholm, Andreas Braun, Anna Filina, Pauline Vos, Stefan Koopmanschap, Nicolas Grekas, Iain Cambridge, Sebastian Bergmann, Konrad Oboza, Alexandre Salome, Antoine Bluchet, Kévin Dunglas, Rob Allen, Mathias Arlaud, Benjamin Eberlei, Viktor Pikaev, Valentin Rusev Valentin Rusev, Romain Neutron and many others...
🫵 Participate in the Unconference track, a participant-driven format where attendees shape the content and discussions in real-time. Have a topic you're passionate about? Claim your slot by emailing us at events@symfony.com
and set the stage for an unforgettable experience. Each unconference talk lasts 20 minutes with a screen and projector available on both days.
🎉 Celebrate Symfony’s 20th Anniversary with us at the Kanarie Club! Join us for an unforgettable evening of drinks, music, and good vibes on Thursday, November 27 from 7:30 to 10:30 pm at the vibrant Kanarie Club, right in the heart of De Hallen — a lively food court with 21 amazing stands (grab your favorite bites, bring them to the Kanarie club!) Dress as you like or simply add a touch of fun!✨
💻 Save the date for the Symfony hackathon on November 29. Everyone is welcome to join the hackday! Whether you're an experienced contributor or new to the community, your participation is highly valued as it brings a fresh perspective! More details are available here. The hackathon will be hosted in Volkshotel Amsterdam from 09:30 a.m. to 3:00 p.m. CET. thanks to the support of Baksla.sh.
📖 Read our attendee guide for venue, accommodation, and transportation details.
👕 Complete your Symfony Live profile to inform us of your dietary preferences, T-shirt size and talk preferences!
Joins us online!
💡Follow the "conference" blog posts to not miss anything!
Want the latest Symfony updates? Follow us and tune in from wherever you are 🌎
This week, Symfony turns 20 years old! 🎉
Twenty years of code, collaboration, and community. Twenty years of ideas that became innovations — and of people who turned open source into something deeply human.
From a PHP framework to a global project powering millions of applications, Symfony’s journey has always been about more than technology. It’s about people — contributors, maintainers, speakers, companies, and countless developers who believed in building something greater together.
To mark this incredible milestone, we’re happy to publish this celebration page; please share it at will!
Take a trip down memory lane with us, revisit some of the key moments from our shared history, and read the steps that made Symfony what it is today. It’s a tribute to everything we’ve achieved — and a heartfelt thank you to everyone who’s been part of this journey. 🫶
But our story doesn’t stop here. The best chapters are still being written!
We can’t wait to celebrate this anniversary with you at SymfonyCon Amsterdam 2025, November 27 – 28, where we’ll come together as a community to honor the past, share our excitement for the future, and continue building the web, one line of code at a time.
Here’s to the next 20 years of Symfony — and to the people who make it all possible. 🎈
PS: thanks also to SensioLabs for sponsoring Symfony during these 20 years, and to Les-Tilleuls.coop for the design of the celebration page!
This week, 62 pull requests were merged (50 in code and 12 in docs) and 40 issues were closed (25 in code and 15 in docs). Excluding merges, 27 authors made 15,703 additions and 6,981 deletions. See details for code and docs.
Symfony CLI is a must-have tool when developing Symfony applications on your local machine. It includes the Symfony Local Server, the best way to run local Symfony applications. This week Symfony CLI released its new 5.15.1 version with the following changes:
These are some of the most recent Symfony job offers:
You can publish a Symfony job offer for free on symfony.com.
SymfonyCasts is the official way to learn Symfony. Select a track for a guided path through 100+ video tutorial courses about Symfony, PHP and JavaScript.
This week, SymfonyCasts published the following updates:
translate_object
Twig Filter