Last week, we were in Paris for this 2024 edition of SymfonyLive. We were delighted to meet the French Symfony community for a 2-day conference 🏰
This year's programme includes talks on a wide range of subjects:
- Serializer on steroids,
- The next revolution is underway with Symfony UX
- Flaky Tests,
- PHP Attributes,
- A reminder of the importance of Logs,
- Profiling in short supply,
- What's new in Symfony 7.1
Day 1
The conference began with a presentation by Fabien Potencier, who told us about the Splitter Git used for packaging Symfony releases (and its many components). He then continued with a presentation on the internal workings of Git, a subject of particular interest to our backend developer Justine, who dedicated a whole section to it, which you can read below.
The rest of the morning was devoted to decoupled and monolithic architectures with Kévin Dunglas. We finished the morning with a presentation by Grégoire Pineau, who reminded us of the importance of logs and how to work better with them. It was a real revelation for Kevin, who in turn dedicated a section of this article to the subject, to be discovered a few lines below.
After this great first morning, we continued our afternoon by talking about roles and permissions with Robin Chalas. We then move on to Baptiste Leduc and Mathias Arlaud's presentation on the limits of the Symfony Serializer and the possible future components that could replace it. Finally, we end this first day with a presentation of VCRs by Ezzine Imen and a demonstration of Live Components by Simon André.
Day 2
After a good night's rest, we started by having a croissant served by a robot cat that was wandering around the hall. And off we go for day 2!
Nicolas Grekas began by giving us a short introduction on how to contribute to Symfony, and then presented the new features of Symfony 7.1.
Matheo Daninos came to teach us how to love the frontend. And for us backend devs, that's no easy task^^ The big news this year was that he talked to us about Symfony UX and how we could make our site interactive without writing a single line of JavaScript using Twig components and Symfony UX. Yes, it's possible!
A very interesting talk by Sofia Lescano on the instability of our tests and how they prevent us from delivering. Who hasn't rerun a test 1x, 2x, 6x until it passes? There's no point hiding, we can see you. These tests that fail randomly are called flacky tests and are a real pain in your application. Sofia explained how to build relevant tests and prevent them from becoming flacky. She also gave us ways of solving them without disrupting the app release process.
With Thomas di Luccio's introduction to Continuous Profiling, we discovered the notion of Observability and the services offered by plateform.sh. All very interesting things that we'll be able to implement in our future developments.
Do more with less code thanks to PHP attributes by Jérôme Tamarelle. Attributes, introduced with PHP 8, offer a new way of developing. Jérôme showed us the different attributes of PHP and symfony and how to use them. One particularly interesting one that should be coming in future versions of PHP and that caught our attention was the #[deprecated] attribute. This will enable much better integration in the future.
Justine : Git Splitter
Fabien Potencier gave us a very interesting talk on the Git Splitter and Splitsh.
As developers, we use Git every day. But have you ever taken an interest in how it works internally? I particularly liked Fabien's detailed explanation of how Git works and his practical demonstration of how Git stores our changes in the file system.
The Symfony project is structured as a single repository. For the people involved in the project, this has the advantage of simplifying the contribution process, the PR, the review, the tests and so on. New people can also find everything in the same place, which makes it easier to get started if you want to take part in this open source project.
But when you start your Symfony project, you don't need all the modules developed by the community. You only want the ones that are relevant to your project. That's why you install each of the dependencies with compose. But how do you publish each module separately on packagist? Because packagist requires a single repository for each module.
And that's where splitsh-lite comes in! splitsh-lite is a more powerful implementation of git subtree split.
Git subtree is a Git extension that lets you extract a subdirectory from an existing repository and turn it into a new, independent Git repository. When a subdirectory is extracted, Git retains the history of commits and branches relating to this subdirectory. This keeps the traceability and history of the code in the new repository.
A very dense subject that made me want to dig deeper into it. And it will certainly help us to improve the management of some of our single-repo projects.
Kevin: Your logs deserve better than the default configuration
According to Kevin, the small nugget of this 2024 edition was Grégoire Pineau's presentation, which acted as an electroshock on the way to approach Logs and the importance of implementing them in all Symfony applications.
Whether it's to react to erratic behaviour in production or simply to keep track of how things are working, Logs are essential to the smooth running of a Symfony project.
But of course, logs on their own wouldn't do much good. That's why Grégoire also made us aware of the importance of managing our logs and their notifications. It's essential to put in place an architecture that allows developers to be alerted when errors occur, but also to provide tools for viewing logs quickly.
A conference
What's also great about this type of conference is the space given over to 10 or 15 minute 'Lighting Talks'. One in particular caught our attention. It was a presentation by Grégoire Pineau and Task Runner Castor. A very interesting project, since the PHP ecosystem now has a Task Runner in its own right.
The extras
SymfonyLive isn't just a conference, it's so much more! You'll remember :
- High-quality service during the conference (coffee, catering, a variety of meals)
- A magnificent city to explore
- French cuisine: rich, varied and full of flavour!