SymfonyWorld Online 2021 Summer Edition

June 17 – 18, 2021

Watch the talks in video

If you attended this conference, watch the replay of the talks.
Otherwise, you can Buy a ticket to replay the videos.

Keynote

Fabien Potencier

Keynote

Symfony Forms: Advanced Use Cases

Alexandre Salomé

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.

Cartographing Symfony

Christian Flothmann , Denis Brumann

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.

My Symfony application in Serverless cloud

Marie Minasyan

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

What's new in Doctrine 2021?

Benjamin Eberlei

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.

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

Baptiste Leduc

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!

Feedback on our use of Varnish

Bastien Jaillot

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.

Symfony Notifier Demystified

Jan Schädlich

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

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

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

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

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

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.)

Cypress, the E2E must learn from the past

Guillaume Loulier

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.

A short tale about state machine

Łukasz Chruściel

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 ally 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 ;)).

Runtime component: The game changer

Tobias Nyholm

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.

What is the Symfony UID component?

Nicolas Grekas

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.

PasswordHasher Component: A simple yet powerful password hashing library

Robin Chalas

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.

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

Ryan Weaver

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!

Sponsors

Diamond Sponsors

Platinum Sponsors

Gold Sponsors

Did you miss SymfonyWorld Online 2021 Summer Edition?

Join us at an upcoming conference!

SymfonyLive Paris 2024

Paris / France

March 28 – 29, 2024 Talks are in French

SymfonyOnline June 2024

Online

June 6 – 7, 2024 Talks are in English

SymfonyLive Berlin 2024

Berlin / Germany

June 20 – 21, 2024 Talks are in English

SymfonyCon Vienna 2024

Vienna / Austria

December 5 – 6, 2024 Talks are in English