Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony
100 result(s) for “symfony”
Headless open-source eCommerce platform on top of PHP/Symfony/API Platform
Shopware 6 is an open commerce platform based on Symfony Framework and Vue and supported by a worldwide community and more than 3.100 community extensions
The official Symfony SDK for Sentry (sentry.io)
С пол года назад закончилось то время, когда я писал на PHP, использовал фреймворк Symfony, я страстно защищал свою привязанность к данным технологиям, видел в них собственное будущее и тп. Но, я перешел на написание кода на Ruby и фреймворк Ruby on Rails, теперь я понимаю, что …
This week, we celebrated the SymfonyOnline June 2026 conference. In addition, we published a new case study showcasing how Symfony helps power the rental real estate market. Lastly, we continued publishing articles about new features in Symfony and Twig. Symfony development high…
In addition to the main features announced in previous posts of this series, Symfony 8.1 includes many smaller improvements that make day-to-day work easier. This post highlights the first batch. Convert Between UUIDv7 and UUIDv4 Contributed by Nicolas Grekas in #63593 UUIDv7 id…
Symfony 8.1 includes many small features and improvements across different components. This is the second article in the series that highlights some of the most useful DX (developer experience) improvements. Map Request Headers to Controller Arguments Contributed by Steven RENAU…
.cls-1{fill:currentColor;}.cls-2{fill:#63af5e;}.cls-3{fill:#2e854a;} TreeHouse powers two of the largest real estate marketplaces in the Netherlands: huurwoningen.nl and pararius.nl. Both sites host over 2 million unique monthly visitors. Treehouse is maintained by a team of 40 …
Every Symfony release ships dozens of small developer experience (DX) improvements that make day-to-day work more pleasant. This article highlights some of those improvements in Symfony 8.1. Copy Requests as cURL Commands Contributed by Sylvain Combraque in #62320 When debugging…
To wrap up an amazing lineup, SymfonyOnline June 2026 will stream its final expert sessions live online on June 12, 2026. 🎤 Speaker announcement! Don't miss Nicolas Grekas for the talk "Reconfiguring Symfony in real time with sidekicks": "PHP was long designed as a strictly stat…
The wait is over! SymfonyOnline June 2026 is coming to you live online on June 11-12, 2026, featuring an incredible lineup of expert speakers. 🎤 Speaker announcement! We are thrilled to welcome Kévin Dunglas with his talk "Coding at the speed of thought: Symfony DX in 2026": "Fo…
Join web developers from all over the world this week for SymfonyOnline June 2026, broadcasting live on June 11-12, 2026. 🎤 Speaker announcement! We are thrilled to welcome Hubert Lenoir with his talk "Dealing with audit logs": "Audit logs are essential for compliance, debugging…
In November 2019, at SymfonyCon Amsterdam, I published "Symfony 5: The Fast Track"; a book that teaches Symfony the way I like to learn: by building a real application, one Git commit at a time, from the very first composer install to production deployments, performance profilin…
In addition to the main features announced in previous posts of this series, Symfony 8.1 includes many smaller improvements that make day-to-day work easier. This post highlights a second batch of them. Build Semaphores on Any Lock Backend Contributed by Alexander Schranz in #59…
Contributed by Fabien Potencier in #63778 A new generation of terminal tools (AI coding assistants, log viewers, interactive dashboards, file managers, etc.) share something the Console component was never meant to do: render a full-screen interface that redraws in place and rea…
Earlier this week, I announced the Symfony 8.1 edition of The Fast Track. If you made it to the end of that post, you read that the book was available in five languages. That line is already out of date, and I could not be happier about it. The Symfony 8.1 edition is now availab…
SymfonyDay Montreal 2026 is officially a wrap, and what an incredible edition it was on June 4th! A full day packed with inspiring conferences, deep-dive tech insights, and above all, the immense joy of bringing the local Symfony community together. 💙 From the morning coffee to …
Symfony UX 3.2.0 and 2.36.1 are now available. Both releases fix two security issues, one in UX Icons and one in UX Toolkit, so every application using these packages should upgrade as soon as possible. On top of the security fixes, version 3.2.0 ships several new features for T…
Symfony AI is approaching its 1.0 release — so let’s take a tour. In this first post of this series, we introduce the Platform component — the foundation layer that connects your PHP application to the world of AI. The AI landscape is fragmented. Every provider ships its own API…
Affected versions Symfony UX Icons versions >=2.17.0<2.36.1, >=3.0.0<3.2.0 are affected by this security issue. The issue has been fixed in Symfony UX Icons 2.36.1, 3.2.0. Description The ux_icon() Twig function is marked is_safe=['html'], so Twig never escapes its o…
Affected versions Symfony UX Toolkit versions >=2.32.0<2.36.1, >=3.0.0<3.2.0 are affected by this security issue. The issue has been fixed in Symfony UX Toolkit 2.36.1, 3.2.0. Description The ux:install console command installs files from a recipe kit by copying path…
A few days ago I announced the Symfony 8.1 edition of "The Fast Track", and then that it was available in nine languages. The book has always been free to read online at symfony.com/book. What changes today is not what you can read, but what you can do: the content is now public…
This week, the Symfony book published its update for Symfony 8.1 in multiple languages. Meanwhile, we completed the New in Symfony 8.1 series, continued the New in Twig 4.0 series with articles about the sandbox and expression parsers, and launched a new series about Symfony AI.…
Two weeks ago, we wrapped up another fantastic edition of SymfonyOnline, and we are still buzzing from the energy! 🎉 Our pre-conference workshops (June 9-10) focused on Symfony and AI, expertly led by Stiven Llupa and Guillaume Loulier. Thank you for sharing your expertise and s…
Symfony 8.1.1 has just been released. Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project. Tip Want to be notified whenever a new Symfony release is published? …
Symfony 8.0.14 has just been released. Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project. Tip Want to be notified whenever a new Symfony release is published?…
Symfony 7.4.14 has just been released. Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project. Tip Want to be notified whenever a new Symfony release is published?…
Symfony 6.4.42 has just been released. Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project. Tip Want to be notified whenever a new Symfony release is published?…
Symfony 8.1.1 has just been released. Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project. Tip Want to be notified whenever a new Symfony release is published? …
Symfony 8.0.14 has just been released. Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project. Tip Want to be notified whenever a new Symfony release is published?…
Symfony 7.4.14 has just been released. Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project. Tip Want to be notified whenever a new Symfony release is published?…
Symfony 6.4.42 has just been released. Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project. Tip Want to be notified whenever a new Symfony release is published?…
Two weeks ago, we wrapped up another fantastic edition of SymfonyOnline, and we are still buzzing from the energy! 🎉 Our pre-conference workshops (June 9-10) focused on Symfony and AI, expertly led by Stiven Llupa and Guillaume Loulier. Thank you for sharing your expertise and s…
This week, the Symfony book published its update for Symfony 8.1 in multiple languages. Meanwhile, we completed the New in Symfony 8.1 series, continued the New in Twig 4.0 series with articles about the sandbox and expression parsers, and launched a new series about Symfony AI.…
A few days ago I announced the Symfony 8.1 edition of "The Fast Track", and then that it was available in nine languages. The book has always been free to read online at symfony.com/book. What changes today is not what you can read, but what you can do: the content is now public…
by Yitzchak Schaffer (@YitzOfTheBits) Silex is a PHP microframework from the same family as Symfony. My shop, Imagine Easy Solutions, uses Silex for some of our most important applications. Modular setup is at the core of Silex’s game, by means of Service Providers. The Mo…
I’ve been dealing with a frustrating issue in a Symfony application hosted on DigitalOcean App Platform. Since it took me quite a while to find the solution, I thought I’d share it here in case it helps someone else. By default, every application running on App Platform includes…
@nicolasgrekas Show Notes Nicolas Grekas on Medium Fabien's PR New in Symfony 5.1: Uid component New in Symfony 5.1: Portable HTTP/2 implementation New in Symfony 5.1: Configurable PHP Preloading New in Symfony 5.1: Stack decorators Audio This episode is sponsored by RingCe…
🎉 Symfony 8 🎉 is out after 2 years of hard work, and we are already using it in production. How so? Follow me in this upgrade process 🤓 We start our journey with a Symfony 7.3 pet project, it's called…
This is a short story that begins in early 2025 when, while proofreading an article we were about to publish on the JoliCode blog, I noticed an image with rather questionable graphic quality. &quot;—…
Today I want to share a quick tip for Symfony users ✌️. When you use the ExpressionLanguage component you get a context: some variables and some functions. Those functions are not the same everywhere.…
Martin Hujer published a write-up on how he uses PHPStan to a full extent in a real-world application that combines Symfony Framework with Doctrine ORM and is tested by PHPUnit.The benefits are clear — if you make PHPStan understand the code that uses a framework with its own co…
When we use Symfony's Console component to write CLI commands in PHP (and you should!), we're almost always writing any output to "stdout". There's a few ways to get general output from a CLI command using Console: // Run the command (Laravelish) public function fire()…
How heavy is Silex? Quite often silex has been described as heavy or bloated. It’s time to put this myth to rest. Quotes Silex: The world’s largest microframework. Silex: All the bloat of Symfony but with only half the features. Silex is so big: It has more lines of code than yo…
Introducing Stack In the post titled HttpKernel middlewares I brought up the idea of bringing rack middlewares to Symfony2. In order to solidify this effort I would like to announce a new project: Stack. Stack Stack is a convention for composing HttpKernelInterface middlewares. …
Value of HttpFoundation In the previous post I talked about why most HTTP abstractions for PHP failed to gain adoption and how Symfony2 HttpFoundation is different: It is part of a popular framework, giving it wide adoption. It stays close to HTTP, trying to rebuild the request …
HttpKernel middlewares A brief history of language-specific HTTP interfaces 1997: Java Servlet 2003: Python WSGI 2007: Ruby Rack 2009: Perl PSGI 2011: Symfony2 HttpKernelInterface Rack as an interface From the aforementioned interfaces, I’m most familiar with Rack. And in fact, …
This blog did not have syntax highlighting since I rebuilt it with Symfony for my own entertainment. So when [Brendt posted about his new server-side syntax highlighter](https://www.reddit.com/r/PHP/comments/1bqgjd1/ive_tagged_tempesthighlight_v1_a_code_highlighter/) I was intri…
Recently I migrated this blog away from Tailwind to [Bulma](https://bulma.io) CSS framework, which uses a more semantical approach to CSS classes. Since this blog is a modern Symfony project, it uses Symfony Encore for providing frontend resources, and Symfony UX with the Hotwir…
I usually write about PHP, Symfony and dev tooling here, but I’ve spent the past year fighting a 638C “Pressure modulator: pump motor” code on my BMW F 800 GSA (K75, production date 14/05/2014, Bosch ABS 9M block). After about 800€ burned on diagnostic tools, s…
Serialization groups have been the go-to mechanism for controlling field visibility in Symfony and API Platform for years. They work — but they introduce a layer of indirection that gets painful as your application grows. I recently removed the last serialization group from a pr…
2025: Performance Milestone for the Symfony Ecosystem# I recently had the opportunity to present at SymfonyCon on a topic that has been driving much of my work lately: 2025: Performance Milestone for the Symfony Ecosystem. For those who couldn’t attend, or if you want to l…
Symfony Object Mapper Component# Check out the slides of my conference at the Symfony Con: Mapping is something that you see in many frameworks over the web in every programming languages. Doctrine, for example, has a quite complex mapper to transform the relational database rep…
I’m removing legacy code on the API Platform codebase to prepare for the API Platform 4 release. While doing that I also updated many dependency requirements such as PHP 8.2 (previously PHP 8.1 was allowed), Symfony 7.1 (as 7.0 is now EOL) and PHPUnit to 11 which is the ma…
CQRS with Symfony# Here, CQRS stands for Command and Query Responsibility Segregation. I recommend to read Martin Fowler’s introduction which is a really good starting point. I often see implementation of CQRS using the Symfony messenger component. Let’s take two dat…
If you've been running a Symfony-based blog or CMS for a while, chances are you already have duplicate content. You just don't know it yet. Editors rewrite old articles, documentation pages grow organically, and over time you end up with five pages that all basically say the sam…
LIKE/MATCH queries have a hard ceiling. I've seen Symfony projects where the client kept complaining that search "doesn't work" and the real issue was never the code, it was that users don't search the way you index. They type "how to reset password" and your database has an art…
In this article, we are going to discuss about How we can create a contact form in Symfony with SwiftMailer. Symfony provides an architecture, components and tools for developers to build complex web applications faster. Choosing symfony allows you to release your applications e…
In this tutorial, we are going to discuss about how to implement the functional testing in Symfony 4 with Kahlan 4. In IT world, whenever we are creating an application/website, we need to test the application/website thouroghly. To perform the functional testing we have a bundl…
In 2013, Fabien Potencier blogged about a One File challenge: creating a Symfony app in 1 file and under 200 lines of code. The series never finished, but it initiated the Symfony Flex project. With more than 10 years of innovation, can we complete this challenge today? Special …
This year, Symfony celebrates its 20 year anniversary. Let’s dive into some statistics of years of making web development history. The graphs and metrics in this post are heavily inspired and based on Daniel Stenberg’s curl dashboard. If you enjoy data and open source project, g…
For a while, I’ve worked on a new build tool for the Symfony documentation. The project started with a fresh git init, but now it’s time to merge it with our existing build tool. I want all contributors of the existing tool to receive credits for the code they build, but I also …
Cross-site Request Forgery (CSRF) is one of the traditional vulnerabilities that web applications have to deal with. Every web framework - including Symfony - supports CSRF protection out of the box. A lesser known vulnerability is Login CSRF, a special kind of CSRF attack. How …
At SymfonyWorld Winter 2021, I talked about using the new Symfony authentication system in your applications in Symfony 6. We discussed the important changes to the Security component, what we tried to improve with each change, and how you can use these to make a more secure app…
A very exciting time is coming with the biggest change for Symfony since Symfony 2.0: Symfony 6 has native PHP types on all its methods where it is possible. This will be a great push towards type safety in the PHP open source communities! Nicolas and Alexander have been working…
Symfony has a very rigid release schedule since Symfony 3.0. Predictable releases are often mentioned as a major advantage. Did you know that this schedule also includes a 2 month “stabilization phase”? This phase gives time to all libraries and bundles to catch up. Testing pre-…
[I switched this website from Symfony to Laravel](/blog/why-I-migrated-this-website-from-symfony-to-laravel) 2,5 years ago, and I [love Laravel Container](/blog/what-i-prefer-about-laravel-dependency-injection-over-symfony) ever since. Symfony and Laravel containers are very sim…
There are dozens of posts and talks about how Symfony Workflows work and what they are for. To give you the simplest example, if you have a post - it can be drafted, reviewed, or published. The workflow component makes sure the transitions between these states are valid. That's …
Using PHPStan is not just about getting to level 8 with less than 100 ignored cases. Yes, there are also [official extensions](https://packagist.org/?query=phpstan%2Fphpstan-) that improve the type support of Symfony, Doctrine, and Laravel projects. But more rules are needed to …
Today, I'll share a trademark secret that allows us to move fast and make huge changes without fear. When we're starting a new [Symfony 2.8-7.2 upgrade project](/blog/off-the-beaten-path-to-upgrade-symfony-28-to-72), we cover it with a couple of tests first. These tests are not …
Symfony 3 introduced a [`@required` annotation](https://symfony.com/doc/3.x/service_container/calls.html) (now also an attribute) that allows injecting more services via the setter method apart constructor. At the time, it was good. The goal was to solve circular dependencies: w…
There are two types of upgrades. One follows only `UPGRADE.md` files on every release, replacing what has been removed with new alternatives. It works, and we could say that the codebase will be "up-to-date." The other upgrade doesn't stop at the required minimum but **makes use…
Yesterday, I came across a cool PHP tool. I wanted to try it, but the installation instructions were a bit tricky. The tool required a specific PHP version and a specific version of each dependency. It required Symfony 5.4+, but our project has Symfony 3.3. I was unable to use i…
I believe that every Symfony app can fit service config under 5 lines. Configs are among the most underestimated parts of Symfony projects and deserve to be done right. Like a healthy tree trunk, which brings power to the branches and leaves, clear configs keep the design archit…
Easy Coding Standard focuses on easy run, setup, and use. From composer requirement through the automated setup to the config. The config was based on rather cumbersome Symfony closure service configs. But last year, I [switched the DI container to Laravel](/blog/experiment-how-…
Использование форматов В настоящее время веб-приложения представляют из себя большее, чем просто HTML странички. Начиная от XML для RSS фидов или веб-сервисов, и заканчивая JSON для Ajax запросов, они имеют множество различных форматов для выбора. Эти форматы полностью поддержив…
Решение 1: если поставить “/” на конце маршрута, например так contact: pattern: /contact/ defaults: { _controller: "WebsiteProjectBundle:Home:contact"} то просиходить перенаправление с /contact на /contact/, и все работает. Но ест один большой минус: backslash в тако…
получаем пользователя $userManager = $this->get('fos_user.user_manager'); $user = $userManager->findUserById($id); теперь залогинем его: $providerKey = $this->container->getParameter('fos_user.firewall_name'); $token = new UsernamePasswordToken($user, null, $provider…
TLDR; Want StackPHP middleware in Laravel 5.0? Try barryvdh/laravel-stack-middleware Middleware and Laravel 4 In version 4.1, Laravel introduced compatibility with StackPHP middleware. As Laravel uses the Symfony HttpFoundation and the Application class implements the HttpKernel…
Validation is one of the most common tasks when building many types of software applications. Talking more specifically about the Symfony Framework, its Validator component offers a very powerful set of APIs to validate objects, arrays, forms and much more. We are going to see a…
This is the fifth post from a series of posts that described the whole deploy process from development to production of a Symfony API. This series of blog posts had the aim to show a possible approach to build a continuous integration and continuous delivery pipeline. The contin…
This is the forth post from a series of posts that will describe the whole deploy process from development to production. The first article is available here, the second here and the third here. After covering the steps 1-3 and having prepared our infrastructure, we can see how …
This is the third post from a series of posts that will describe the whole deploy process from development to production. The first article is available here and the second here. In the previous two articles I've covered the steps 1-3 from the schema here below. Before being abl…
This is the second post from a series of posts that will describe the whole deploy process from development to production. The first article is available here. Here a short summary of the blog article series, quoted directly from the first post. The application was a more-or-les…
In this blog post I'm going to share the deploy strategy I've used to deploy an API-centric application to AWS for a customer. This is the first post from a series of posts that will describe the whole deploy process from development to production. The application was a more-or-…
When writing APIs, a proper error handling is fundamental. HTTP status codes are a great start, but often when we deal with user inputs is not enough. If out model has complex validation rules, understanding the reason behind an 400 Bad Request error can be not trivial. Fortunat…
Recently, while speaking at the Symfony Berlin User Group, during the Q&A session, I was asked to comment on how to solve an issue when using FOS REST Bundle and JMS Serializer. The JMS Serializer is a library that allows to serialize and deserialize and object graph into a …
In collaboration with the rest of the company I have planed a transition from a legacy PHP3/4 codebase (including a complex CRM for the booking management and invoicing) to a modern PHP 7 application based on Symfony framework and its components. The existing product LaCure has …
Or rather what is left to do for the Symfony2 community? Obviously there are some missing features, bug fixes, performance enhancements and polish to apply to various parts of our code base. In terms of features, I think the main part that could use some more love is the HttpCac…
In a previous article, we explored how to generate your first PDF in a few lines of code using Gotenberg and GotenbergBundle — a Symfony bundle that wraps Gotenberg’s HTTP API to convert HTML or Office files into PDFs, and even take screenshots.That was a great start. But what h…
© Unsplash by Jon TysonGoing asynchronous sounds like a dream: decoupled processes, faster response times, and no more users staring at spinning wheels. But pretty quickly, reality hits — some messages take forever, others are way too important to be delayed, and suddenly you’re…
In Symfony, structuring your services cleanly is just as important as optimizing performance. Because maintainable code scales better in the long run than micro-optimizations. A tightly coupled service with bloated dependencies is harder to test, extend, or even understand.In th…
Creating dynamic PDF documents, such as invoices or reports, is a common task in modern application development. Whether it’s to meet administrative needs, automate processes, or simply provide essential functionality to users, choosing the right tool for generating these docume…
Unsplash by Ethan WeilI had the opportunity to work on a project with a team that was relatively new to Doctrine migrations. To help them get used to it, and to discard the possibility of having pull (or merge) requests with changes to doctrine entities without generating a migr…
Codeception 5.0 is out! This release is PHP 8+ only, so we are back on track with modern PHP. We are dropping support for PHPUnit < 9, and are technically ready for PHPUnit 10. And we also support Symfony 6 without dropping support of previous Symfony versions. As always, we …
Codeception Testing Framework from its roots was a plugin of symfony 1 framework. Today Codeception is powered by Symfony components and can be used to run functional tests for practically any popular PHP framework. Why would you someone ever choose Codeception if Symfony alread…
Abstracting API integrations using tagged services and the Symfony serializer in order to speed up implementations of multiple and future endpoints
[BLOG] Run and schedule Symfony console commands with Enqueue.
An example on how we added extra rules to the switch user functionality of the Symfony security component.