Schedule

All talks are delivered twice so you can attend them regardless of your timezone.

All times below are displayed in your local timezone

Select your schedule

June 17, 2021

Track Blackfire.io Track SensioLabs

09:45

10:00

 
🎉 Opening / Welcome session 👋

10:00

10:40

 
Keynote Fabien Potencier

10:50

11:25

Cartographing Symfony Denis Brumann,Christian Flothmann

11:25

11:55

Break ☕ 🥐

11:55

12:30

What's new in Doctrine 2021? Benjamin Eberlei

12:30

13:30

Lunch 🍽

13:30

14:05

14:10

14:45

14:45

15:15

Break ☕ 🥐

15:15

15:55

You're not in IT Stefan Koopmanschap
 

15:55

16:00

Closing session of the first day
 

June 18, 2021

Track Blackfire.io Track SensioLabs

09:45

10:00

 
🎉 Opening / Welcome session 👋

10:00

10:40

 
Towards Digital Sustainability François Zaninotto

10:50

11:25

11:25

11:55

Break ☕ 🥐

11:55

12:30

12:30

13:30

Lunch 🍽

13:30

14:05

 

14:10

14:45

14:45

15:15

Break ☕ 🥐

15:15

15:55

 

15:55

16:10

Closing session 👋
 

Keynote

Fabien Potencier

Track SensioLabs

This talk is delivered twice during the conference:

  • Thursday, June 17, 2021 at 10:00 AM – 10:40 AM

  • Thursday, June 17, 2021 at 17:00 PM – 17:40 PM

Keynote

Cartographing Symfony

Denis Brumann , Christian Flothmann

Track SensioLabs

This talk is delivered twice during the conference:

  • Thursday, June 17, 2021 at 10:50 AM – 11:25 AM

  • Thursday, June 17, 2021 at 17:50 PM – 18:25 PM

Symfony has grown a lot since its inception. Between 2.0 and the current release over 25 components were added to Symfony. In our talk we want to take a look at these components, group them into layers and then discuss common principles for components in these layers. At the heart of this discussion are package design principles.

This knowledge will not only help you better understand how Symfony is built and how to use these components standalone (or possibly not), it will also help you design better applications and libraries yourself.

Symfony Forms: Advanced Use Cases

Alexandre Salomé

Track Blackfire.io

This talk is delivered twice during the conference:

  • Thursday, June 17, 2021 at 10:50 AM – 11:25 AM

  • Thursday, June 17, 2021 at 17:50 PM – 18:25 PM

The Symfony Form component offers many features out of the box. It covers 80% of
use cases, but how do you deal with the 20% left? If you have read the
documentation, you probably know how to use it. But do you know how it works?

To implement your business on top of Symfony Form, you must know how it works
under the hood, and how you can extend it. I will illustrate those underlying
concepts through a series of standard use cases:

- Make a list of items sortable;
- Hide or disable fields based on user permissions;
- (more, to be discovered during the conference).

This presentation will give you insights into how things work inside the Form
component, and how you can hook in it.

What's new in Doctrine 2021?

Benjamin Eberlei

Track SensioLabs

This talk is delivered twice during the conference:

  • Thursday, June 17, 2021 at 11:55 AM – 12:30 PM

  • Thursday, June 17, 2021 at 18:55 PM – 19:30 PM

This talk will cover the changes, new features and improvements across the Doctrine ecosystem over the last 12 month and an outlook over what is (probably) coming in 2021. Topics include DBAL 3, Deprecations, Annotations vs Attributes, New Features in recent ORM versions and our roadmap.

My Symfony application in Serverless cloud

Marie Minasyan

Track Blackfire.io

This talk is delivered twice during the conference:

  • Thursday, June 17, 2021 at 11:55 AM – 12:30 PM

  • Thursday, June 17, 2021 at 18:55 PM – 19:30 PM

Dive deep into the deployment of PHP & Symfony applications to the serverless cloud: study available options, discover and test Bref.

Feedback on our use of Varnish

Bastien Jaillot

Track Blackfire.io

This talk is delivered twice during the conference:

  • Thursday, June 17, 2021 at 13:30 PM – 14:05 PM

  • Thursday, June 17, 2021 at 20:30 PM – 21:05 PM

On a large French e-commerce site, we use Varnish as HTTP cache.

We use it for the API as well as for the HTML front ends.

We use ESI, with user-context-hashes allowing us to do
authenticated caching. We mix invalidation by tags but also by ttl.

This is a feedback to explain the choices we had to make, how we use it, what it brings us.

We'll also answer a lot of questions that people have about HTTP caching in practice.

You need an AutoMapper, but you don't know it yet!

Baptiste Leduc

Track SensioLabs

This talk is delivered twice during the conference:

  • Thursday, June 17, 2021 at 13:30 PM – 14:05 PM

  • Thursday, June 17, 2021 at 20:30 PM – 21:05 PM

It is quite common for a developer to have to map data. In the long run, this kind of code is boring to write. Why not generate it automatically? This is the promise that AutoMapper tries to solve: generating the code needed to map one data to another (array, class, etc.)

Through this talk, we will first see the Symfony Serializer and how it works.

Then, we will discover how AutoMapper takes advantage of the Serializer ecosystem while revolutionizing the Normalizer concept by adding code generation, thus drastically boosting performance!

Symfony Notifier Demystified

Jan Schädlich

Track SensioLabs

This talk is delivered twice during the conference:

  • Thursday, June 17, 2021 at 14:10 PM – 14:45 PM

  • Thursday, June 17, 2021 at 21:10 PM – 21:45 PM

The Notifier Component is marked stable with the Symfony 5.3 release. A good time to have a closer look at how the Symfony Notifier works and what you can do with it.

Pedal to the metal: introducing Symfony Turbo

Kévin Dunglas

Track Blackfire.io

This talk is delivered twice during the conference:

  • Thursday, June 17, 2021 at 14:10 PM – 14:45 PM

  • Thursday, June 17, 2021 at 21:10 PM – 21:45 PM

Hotwire Turbo is a tiny library recently introduced by DHH (the creator of Ruby On Rails) allowing to have the speed of Single-Page Apps without having to write any JavaScript!

As part of the Symfony UX initiative, I created an official integration between Turbo and Symfony. With Symfony Turbo, you can get rid of JavaScript and enjoy using Twig again!

During this talk, we'll discover how the library works, how to leverage it to enhance your Twig templates, how to add real-time features to your websites using the Mercure integration of Symfony Turbo and how to test your Turbo apps with Symfony Panther!

You're not in IT

Stefan Koopmanschap

Track Blackfire.io

This talk is delivered twice during the conference:

  • Thursday, June 17, 2021 at 15:15 PM – 15:55 PM

  • Thursday, June 17, 2021 at 22:15 PM – 22:55 PM

You may think you're in the IT business but think again. You are actually in the learning business. If you don't learn, you fall behind. Let's go on a journey through 20+ years of PHP experience and look at some key learnings and why it is important to learn.

Towards Digital Sustainability

François Zaninotto

Track SensioLabs

This talk is delivered twice during the conference:

  • Friday, June 18, 2021 at 10:00 AM – 10:40 AM

  • Friday, June 18, 2021 at 17:00 PM – 17:40 PM

The digital activity accounts for 4% of the total carbon emissions worldwide - roughly as much as planes. Who is responsible for that ? For the most part, developers like you and me. It means it's our job to track, analyze and reduce the carbon emissions of the software we develop. Except it's a hard problem and they aren't many tools available for that.

In this talk, I'll go over the why, the when and the how we should work on building more sustainable software. It's not one of these talks about climate change that put you in a horrible mood for the next month - rather the type of talk with tips that you can start using right away to improve your practice, and make the world a better place.

Building a SaaS product with Symfony : tips and tricks

Titouan Galopin

Track SensioLabs

This talk is delivered twice during the conference:

  • Friday, June 18, 2021 at 10:50 AM – 11:25 AM

  • Friday, June 18, 2021 at 17:50 PM – 18:25 PM

After several years of experience building Software As A Service products, I would like to share with you the crucial and less crucial tips on how to build a technically effective platform while focusing on your business. We will talk about how to build great subscription mechanisms, how to leverage EasyAdmin, why and how you should rely on other platforms (Stripe, Sentry, SymfonyCloud) and finally how you can plan your software architecture for growth.

Can your code live without the Symfony Framework?

Hiromi Hishida

Track Blackfire.io

This talk is delivered twice during the conference:

  • Friday, June 18, 2021 at 10:50 AM – 11:25 AM

  • Friday, June 18, 2021 at 17:50 PM – 18:25 PM

Everyday, we build our applications on the shoulder of the Symfony Framework. I wonder how long our applications can live. What if Symfony is transformed into totally different, brand-new form?

We already experienced painful migration from symfony1 to Symfony2+, from doctrine1 to Doctrine2+, and Doctrine3 is coming.

In this talk, I will describe how we can extend the lifetime of our applications, through loose coupling between our code and Symfony (or any third-party dependency really.)

A short tale about state machine

Łukasz Chruściel

Track Blackfire.io

This talk is delivered twice during the conference:

  • Friday, June 18, 2021 at 11:55 AM – 12:30 PM

  • Friday, June 18, 2021 at 18:55 PM – 19:30 PM

Entities lifecycle is usually something more than create and delete. Models with which we are working on day to day basis change their state under some business circumstances. State machine patterns can be a powerful allay when solving this kind of problem. How does it look like? What are the pros and cons of state machine usage? What are the things that we should be beware of? I will answer these questions during my talk, together with practical differences between the most popular implementation (including Symfony Workflow of course ;)).

Cypress, the E2E must learn from the past

Guillaume Loulier

Track SensioLabs

This talk is delivered twice during the conference:

  • Friday, June 18, 2021 at 11:55 AM – 12:30 PM

  • Friday, June 18, 2021 at 18:55 PM – 19:30 PM

In this talk, we'll learn what is Cypress, an E2E framework which is growing (companies like Paypal, Disney, Github, Slack and so on uses it everyday).
The first objective will be to compare it against competitors like Behat (especially when used with Mink/Selenium), a well known tool.

Regarding his rapid growth, Cypress can face issues and bad habits, we'll see how to manage these traps and learn from old tools, we'll also see the main drawbacks and advantages and how to use it in a daily basis.

In the end, we'll see how to integrate it into a Symfony application and ease his usage, maintenance and write future-proof tests.

Runtime component: The game changer

Tobias Nyholm

Track Blackfire.io

This talk is delivered twice during the conference:

  • Friday, June 18, 2021 at 13:30 PM – 14:05 PM

  • Friday, June 18, 2021 at 20:30 PM – 21:05 PM

Symfony 5.3 will be released with a new Runtime component. It allows your application to run decoupled from the global state. That means your application will be portable to many different systems without making any changes.

This is a massive step forward not only for Symfony but for all PHP applications. It is especially beneficial for users that want to run ReactPHP, Bref, Swoole, etc.

PasswordHasher Component: A simple yet powerful password hashing library

Robin Chalas

Track Blackfire.io

This talk is delivered twice during the conference:

  • Friday, June 18, 2021 at 14:10 PM – 14:45 PM

  • Friday, June 18, 2021 at 21:10 PM – 21:45 PM

In Symfony 5.3, the password hashing logic has been extracted out from the security-core package to a first-class package named password-hasher.
This component provides a clean API to manage passwords securely, and it can be used in any PHP project.
Let's see how this component works and how it can ease managing passwords in your applications.

What is the Symfony UID component?

Nicolas Grekas

Track SensioLabs

This talk is delivered twice during the conference:

  • Friday, June 18, 2021 at 14:10 PM – 14:45 PM

  • Friday, June 18, 2021 at 21:10 PM – 21:45 PM

The Symfony UID component has been released one year ago as a simple OOP layer on top of the "uuid" extension and polyfill. Since then, it has matured from experimental to stable and has increased the range of use cases it can fulfill, while keeping a clean and simple design.

But what are "UIDs" in the first place? Unique IDentifiers serve many purposes! During this talk, we will explore the component itself. We will also discuss the various types of UIDs and when each of them should be preferably used.

Last but not least, we will make this an opportunity to discuss why the Symfony project decided to create a new component on the topic, while alternatives exist.

A Dynamic Frontend with Twig & Zero JavaScript? Say Hello to...

Ryan Weaver

Track Blackfire.io

This talk is delivered twice during the conference:

  • Friday, June 18, 2021 at 15:15 PM – 15:55 PM

  • Friday, June 18, 2021 at 22:15 PM – 22:55 PM

Traditional web apps are back! The Symfony UX initiative - with tools like
Stimulus & Turbo - makes it possible to built your HTML using Twig templates
but *with* a "single-page experience" and professionally-written JavaScript.

Could we go further? Could we organize Twig templates into reusable
units? And could we expose those units so we can load them via AJAX calls or
HTTP-cache them?

And, if we did that... would it be possible to write Twig templates that
automatically update on the frontend when the user interacts with them? All
with zero JavaScript?

Let's go on a journey!