Schedule
All times below are displayed in your local timezone
January 16, 2025
Track Symfony | Track SensioLabs | |
---|---|---|
09:00 09:15 |
🎉 Opening / Welcome session 👋
|
|
09:15 09:55 |
||
10:00 10:35 |
||
10:40 11:15 |
||
11:15 11:35 |
Break ☕ 🥐
|
|
11:35 12:10 |
||
12:15 12:50 |
||
12:50 14:00 |
Lunch 🍽
|
|
14:00 14:35 |
||
14:40 15:15 |
||
15:15 15:35 |
Break ☕ 🥐
|
|
15:35 16:10 |
January 17, 2025
Track Symfony | Track SensioLabs | |
---|---|---|
09:00 09:05 |
🎉 Opening / Welcome session 👋
|
|
09:05 09:40 |
||
09:45 10:20 |
||
10:25 11:00 |
||
11:00 11:20 |
Break ☕ 🥐
|
|
11:20 11:55 |
||
12:00 12:35 |
||
12:35 13:30 |
Lunch 🍽
|
|
13:30 14:05 |
||
14:10 14:45 |
||
14:45 15:05 |
Break ☕ 🥐
|
|
15:05 15:40 |
||
15:40 15:45 |
Closing session 👋
|
Keynote
Keynote
Thursday, January 16, 2025 at 09:15 AM – 09:55 AM
Refactor your code - refactor yourself
Looking at old legacy code, you usually know "a better way to do it" by now. But did you ever look at "the code in your mind"?
Let's go through a helpful mindset for refactoring projects and apply some principles of refactoring to yourself.
This talk will give you a better understanding of how you and your brain evolved from index.php to a complete fully grown application - and what parts of your brain still run legacy code.
Thursday, January 16, 2025 at 10:00 AM – 10:35 AM
GraphQL, REST or RPC? Making the choice!
When you've been tasked with creating an HTTP API, the fundamental decision you need to make is which architecture to choose. Should your API be RESTful? What about GraphQL? or RPC? In this session, I'll explain the choices and how each works. We'll then look at their strengths and weaknesses in order to help guide your decision. By the end of this talk, you'll be well-placed to choose the right API architecture for your project.
Thursday, January 16, 2025 at 10:00 AM – 10:35 AM
Symfony UX: 2024 Highlights & What’s Next
Symfony UX is a set of components for creating rich front-end interfaces with Symfony. This December, it celebrates its 4th anniversary. (Happy UX-Birthday!)
What a year 2024 has been for Symfony UX!
We’ll review all that happened: new components (Icon, Map), added features to TwigComponent and LiveComponent, and discuss the philosophy and directions taken by the Symfony UX team.
Then we’ll explore the future of Symfony UX with a sneak peek at 2025, including one or two surprises!
Thursday, January 16, 2025 at 10:40 AM – 11:15 AM
From Translations to Multi Dimension Entities
Content management is more than just adding a text editor to your project. Initially, you may only need a basic text editor for your Entity. However, as your project grows, you might require support for multiple languages, and when drafting or versioning come into play, things can get tricky.
In this talk, I will provide a quick introduction to different ways of data modeling and the libraries available to meet these needs. I'll also share a brief history of Sulu's content storage and explain why we decided to redesign the entire content storage system for a better future.
You'll learn how to evolve from a simple Doctrine entity to a translatable entity, and finally, to a multi-dimensional entity that supports multiple languages, drafting, versioning, and more. These concepts are reusable even if you're not using our beloved CMS.
Thursday, January 16, 2025 at 10:40 AM – 11:15 AM
Symfony UX: 2024 Highlights & What’s Next
Symfony UX is a set of components for creating rich front-end interfaces with Symfony. This December, it celebrates its 4th anniversary. (Happy UX-Birthday!)
What a year 2024 has been for Symfony UX!
We’ll review all that happened: new components (Icon, Map), added features to TwigComponent and LiveComponent, and discuss the philosophy and directions taken by the Symfony UX team.
Then we’ll explore the future of Symfony UX with a sneak peek at 2025, including one or two surprises!
Thursday, January 16, 2025 at 10:40 AM – 11:15 AM
A brand-new way to serialize data in Symfony
Serialization plays an essential role in any information system, and particularly in the context of a web application, as it is one of the pivots of the HTTP request/response cycle. That's why Symfony's Serializer component is one of the most critical for our applications.
Needs evolve, and since its creation, this old component has found itself confronted with new problems and has in some ways reached its own limits.
That's why it's now necessary to completely rethink the way we serialize data in the Symfony ecosystem.
So let's take a look at two Symfony component drafts: the JsonEncoder and the ObjectMapper, and how they interact to provide a brand-new way of serializing data.
Thursday, January 16, 2025 at 11:35 AM – 12:10 PM
Composer Behind the Scenes
Ever wondered what happens under the hood when you run a Composer update or why Composer 2 got so much faster? Learn about some of its inner workings, some lesser known parts and why they may be useful to you, as well as upcoming features and future plans.
Thursday, January 16, 2025 at 11:35 AM – 12:10 PM
Greener code with Symfony
As software engineers it is sometimes too easy to forget the impact that our code has on the environment. We build for changeability, speed and hopefully quality, but we forget about sustainability. The time to act is now. It is time for us to take responsibility and to write more sustainable tech. In this talk I will talk about things we can do to write more energy efficient code. I will also talk about hosting your code more sustainably. And last but not least… I will share the software architecture needed to build greener applications using Symfony Messenger.
Thursday, January 16, 2025 at 12:15 PM – 12:50 PM
HTTP compression in Symfony apps
Compressing HTTP responses can significantly improve the performance of your Symfony applications. But you still need to find your way through the jungle of standards and formats.
In this presentation, we'll discover how HTTP compression works, the different formats supported by modern web browsers (deflate, gzip, Brotli, and the brand new Zstandard), and how to use them correctly with Symfony.
We'll also look at which formats to compress, which not to, when to use dynamic compression, and when (and how) to pre-compress responses that can be compressed for even better performance.
Thursday, January 16, 2025 at 12:15 PM – 12:50 PM
Carry out the best audit for your client
When you're faced with auditing an application or a set of applications, it's easy to get lost and forget the big picture. Let's discuss which tools are best suitable for every part of the audit, which aspects of the stack should be audited and how to proceed. Join me in finding out which traps to avoid and how to best carry out your next audit.
Thursday, January 16, 2025 at 14:00 PM – 14:35 PM
Who did that? Auditing data changes at scale
As your application evolves from a side project into a serious business, you will likely encounter situations where you, your support team, or even your customers question why certain configurations changed, why information is incorrect, or why data seemingly vanished "on its own." Understanding and effectively managing these issues is crucial to maintaining the integrity and reliability of your application.
This talk will explore various strategies for auditing data changes in Symfony applications. We will discuss where to begin and what factors to consider as the volume of data increases.
Thursday, January 16, 2025 at 14:00 PM – 14:35 PM
Demystifying Dependency Injection in Symfony
The Dependency Injection Component is a key part of all Symfony applications. It helps developers write decoupled and maintainable code.
In this beginner-level talk, we will explore the following:
- The principles of Dependency Injection
- Setting up and configuring the Symfony service container
- Using Attributes for service configuration
By the end of this session, you'll have a solid understanding of how to implement DI effectively, ensuring your Symfony applications are scalable, maintainable, and easy to test.
Thursday, January 16, 2025 at 14:40 PM – 15:15 PM
Symfony Mapper component
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 representation to your well-known entity.
After covering the history behind years of discussion and research by the Symfony community, we'll study the needs for such a component in Symfony. We'll analyse how different it is from the Symfony Serializer, and what are the solutions popular frameworks on the Web offer. At least, we'll showcase the new Mapper component and its application from API design to day to day use cases.
Thursday, January 16, 2025 at 14:40 PM – 15:15 PM
Can Postgres cover your NoSQL needs?
Postgres is famous for its support for SQL data. However, Postgres also has powerful capabilities to work with JSON. I will show how to leverage the various JSON functions of modern Postgres to work with your less structured data. I will also show how to use some of that functionality from within Doctrine.
Thursday, January 16, 2025 at 15:35 PM – 16:10 PM
Keynote
Keynote
Friday, January 17, 2025 at 09:05 AM – 09:40 AM
Strict PHP
Its loose type system and implicit type casts make PHP a perfect programming language for beginners. However, if we rely on those features heavily, we will eventually end up with a codebase that is hard to control and maintain. In this session, Alexander will open up his toolbox and show how a stricter way of programming PHP applications helps him to not lose pace when applying changes to PHP applications.
Friday, January 17, 2025 at 09:45 AM – 10:20 AM
The missing Gotenberg Bundle. Components, Assemble!
Since wkhtmltopdf was deprecated, it is difficult to find an easy to use / setup library to generate PDF's.
Amongst the existing solutions, we chose to focus solely on Gotenberg.
The existing SDK did not match our needs as it provides only static classes, so we decided to give a try and create ourselves a brand new Bundle with the DX possible for Symfony Developpers & PHPStorm users.
From the fast HttpClient to the forgotten Webhook, let's see how existing components can help us to make PDF generation fast and easy to use.
To do so we had to ask ourselves a few questions which we will cover together !
How do we expose a friendly, yet semantic configuration ?
How to ensure great auto-completion for ease of use ?
What needs to be done to have a proper Profiler ?
How to keep memory efficiency by leveraging the HttpClient ?
How to make the asynchrone generation easy ?
Come and discover how generating PDF's is now as easy as using twig !
Friday, January 17, 2025 at 10:25 AM – 11:00 AM
How to migrate from Cron to Symfony Scheduler
In our project, we had a couple of hundred scheduled jobs. Recently, we've successfully migrated the project from Cron to Symfony Scheduler. It was a long way and I would like to share our experience:
- How to do it smoothly?
- What advantages and disadvantages can we get from migration from Cron to Scheduler?
- What problems face we face during the migration?
Friday, January 17, 2025 at 10:25 AM – 11:00 AM
Symfony Authentication: What's next?
The Security component has changed a lot in the past few years.
From Authentication Listeners to Guard and finally the Authenticator Manager system, Symfony now has the most robust infrastructure ever to support most if not all modern, industry-standard Security protocols.
The community started building on these new foundations by introducing an AccessTokenAuthenticator and kept improving it since then, notably through adding more token handlers for well-known authentication protocols.
That's pretty cool already, but what should we expect next? How far will we take it?
In this talk, I'm going to put my Security maintainer hat on to answer these questions and share some insights about what's going on in this critical part of our beloved framework.
Friday, January 17, 2025 at 11:20 AM – 11:55 AM
Crafting Custom PHPStan Rules for Symfony Apps
Static analysis tools like PHPStan have become essential for PHP developers, and Symfony projects can greatly benefit from custom rules tailored to their specific needs. In this talk, I will guide Symfony developers through the process of writing custom PHPStan rules to enforce project-specific standards and catch domain-specific bugs, and freeing up valuable time by automating repetitive code review tasks.
Friday, January 17, 2025 at 11:20 AM – 11:55 AM
Component Thinking with Symfony
Communication is key but challenging for developers, especially when working with people using different programming languages. Front-end developers extensively use Component Architecture, as it is implemented in all major JavaScript frameworks. Let’s explore what Component Architecture is and how to implement it in a real Symfony application. This approach will enable your team to work efficiently on the same codebase, fostering better communication and collaboration by speaking the same technical language.
Friday, January 17, 2025 at 12:00 PM – 12:35 PM
From Pickles to Pie: Sweeten Your PHP Extension Installs
What started out as a sweet PEAR is now a sour PECL, and after many years of dealing with brined cucumbers it’s time to dish out some sweet new tools. Join us for a trip down memory lane as we take a look at the acquired taste of PHP extensions and their challenges from writing and publishing them to finally handling the installation procedure you are all too familiar with. The talk will give you an insight into an effort by the PHP foundation to bake a new PHP Installer for Extensions and how it will solve some of the challenges of dealing with PHP extensions.
Friday, January 17, 2025 at 13:30 PM – 14:05 PM
Running Symfony in a Multi-Process Container
The deployment scenario for PHP looks a little different than for other languages like Go or Ruby that have embedded webservers. The classic stack of NGINX/Apache + php-fpm doesn't perfectly fit in the container world.
Some solution providers, like DigitalOcean or certain Azure products, only allow for single containers to be deployed.
In this talk, we'll explore ways other people have solved this, like FrankenPHP, Framework-X , and others. For production deployments, there is k8s, swarm, compose, and running everything in one multiprocess container.
These single containers could be orchestrated with systemd, supervisord, or Runit. We'll talk about the benefits and downsides of these solutions, compare them with the choice we made for our last project, s6-overlay, show off the s6-cli project I developed for this purpose and talk about recipes for running database migrations, cronjobs and a few more.
Friday, January 17, 2025 at 13:30 PM – 14:05 PM
Flexibility in the Face of Uncertainty
In this forward-thinking talk, I'll take you on a journey through the integration of AI in Symfony projects. Drawing from our real-world experiences, I'll demonstrate how to build adaptable AI systems that can withstand the ever-shifting landscape of AI technologies and regulations. You'll learn our strategies for creating a provider-agnostic AI architecture, ensuring your Symfony applications remain flexible amidst changing requirements and GDPR considerations. Join me to discover how to future-proof your projects and avoid vendor lock-in while harnessing the power of AI in your Symfony ecosystem.
Friday, January 17, 2025 at 14:10 PM – 14:45 PM
Symfony Notifier : Return of the Mailman
Let's delve into the intricacies of Symfony Notifier component: you'll learn all about its inner workings, from channels to transports and configuration.
We'll take advantage of this journey to develop a new feature of the component: sending postal mails.
Friday, January 17, 2025 at 14:10 PM – 14:45 PM
Resurrecting the Dead
Have you ever considered what would happen when a popular open source package is abandoned?
Now, what about when that package is one of your essential dependencies?
This scenario is not some abstract scenario for a far away future. Projects get abandoned every day and your dependency might be next... But you can help!
Come & listen to some tales of an accidental maintainer and learn about what you can do to help try and prevent these situations from getting out of hand.
Friday, January 17, 2025 at 15:05 PM – 15:40 PM
42 best practices for Symfony, a decade later
We are in March 2013. Symfony 2.2 has just been released, PHP 5.5 is around the corner and I give my first public talk during a SymfonyLive: “42 best practices for Symfony” (in French).
10+ years later a lot of things changed for Symfony, for PHP but also regarding development in general.
Let’s take a moment to look back at those best practices and see which one are still relevant, obsolete or now completely wrong. This would be a nice opportunity to reflect on the evolutions our ecosystem experienced over the last decade.
Friday, January 17, 2025 at 15:05 PM – 15:40 PM