London 2018 SEPTEMBER 27-28

Schedule

Friday, September 28th

  Track A Track B
08:00
09:00
Badge pick up and welcome breakfast
09:00
09:15
Welcome session
09:15
09:55
Keynote
Fabien Potencier
10:00
10:40
What is accessibility, and why I should care?
Sandra Eriksson
Symfony without the framework bundle
Tobias Nyholm
10:40
11:05
Break
11:05
11:45
Panther: test your Symfony apps with real web browsers
Kévin Dunglas
Using Symfony Forms with Rich Domain Models
Christopher Hertel , Christian Flothmann
11:45
12:15
Lightning talks part 1
12:15
13:30
Lunch
13:30
14:10
GDPR for web development
Gawain Lynch , Erin Taylor
Take your Http caching to the next level with xkey & Fastly
Andre Rømcke
14:15
14:55
Symfony Cache: a premium recipe to fast apps
Nicolas Grekas
Running Symfony on AWS Lambda
Neal Brooks
14:55
15:20
Break
15:20
16:00
Building first-class REST APIs with Symfony
Michael Cullum
Symfony Messenger: Messages, Queues, Workers and more
Samuel ROZE
16:05
16:35
Lightning talks part 2
16:35
17:15
The Symfony Open-source Community
Zan Baldwin
17:15
17:30
Closing remarks
18:00
21:00
Social event

Keynote

Fabien Potencier - English - Keynote - Friday, 09:15

TBA

What is accessibility, and why I should care?

Sandra Eriksson - English - Track A - Friday, 10:00

Recently, the European Union has embraced new legislation in order to improve accessibility in ICT products (Information Communications Technology) for users with disabilities. This requires web programmers within the public sector and its suppliers to know how to develop accessible web applications. A 40-minute speech about this area will not turn listeners into accessibility experts but hopefully work as an eye-opener. My goal is to spread some light on the accessibility area, WCAG (Web Content Accessibility Guidelines) and inspire some of you to look into it some more.

Symfony without the framework bundle

Tobias Nyholm - English - Track B - Friday, 10:00

You may have heard people saying that ”Frameworks are bad” or ”Symfony is slow”. It is time to investigate why those people are saying that. We want to see if they are really smart or just stuck in the past.

This talk will go over performance to see what you can do to make an application run faster. (There are no quick fixes) We will also see how we can build applications that responds in less that 15ms and then work towards even faster than that.

Panther: test your Symfony apps with real web browsers

Kévin Dunglas - English - Track A - Friday, 11:05

From a few lines of jQuery to modern React/Vue… PWA, Symfony apps always contain JavaScript code. Unfortunately, the SF functional test helper and the Goutte web scrapping lib aren’t able to execute JS code. It means that they cannot assert on client-side generated HTML, test if an element is visible or not, deal with alert boxes or detect if a bug occurs only with a specific browser.

Panther is a brand new e2e testing and web scrapping library written in PHP that drives real browsers thanks to the WebDriver protocol from the W3C. It implements the exact same API than the BrowserKit component. It means than existing SF tests and Goutte scripts work without modification… but this time JS will be executed! The tool also brings new capabilities including taking screenshots, or executing custom JS in the execution context of the web page. To install Panther you only have one command to run, and it doesn’t need any dependency to install Panther. Let’s meet the feline!

Using Symfony Forms with Rich Domain Models

Christopher Hertel , Christian Flothmann - English - Track B - Friday, 11:05

With the popularisation of DDD people started shifting from anemic models with only getters and setters to a rich model describing the state changes in specific methods. This way of designing models does not play well with Symfony forms. User provided input is inherently invalid while we want to maintain certain invariants in our domain model. A common approach to overcome these limitations is to create data transfer objects our forms are then bound to. This can lead to lots of mapping & glue code that might be cumbersome to write and maintain.

But couldn’t we do better? In this talk we will discuss the different aspects of a rich domain model that makes it hard to use it in conjunction with the Form component. We will then look at the possibilities to hook into the data flow of the form handling and discover how we can modify it to interact seamlessly with our model.

GDPR for web development

Gawain Lynch , Erin Taylor - English - Track A - Friday, 13:30

The General Data Protection Regulation (GDPR) came into effect on 25 May 2018. In the lead-up, organizations struggled to interpret and implement the regulation. In the coming year or two, regulators are likely to refine their guidelines in response to emerging industry practices and cases of breaches. In the meantime, regulators advise organizations to follow “best practices” and maintain an audit trail. What does this mean for web developers?

In this talk we give an overview of the main principles of GDPR and their relevance to web development. For front-enders, key issues relate to ensuring users are informed about all use cases for their data, “nudging” users to give informed consent, and how users can exercise their “right to be forgotten.” For back-enders, GDPR especially presents problems concerning data security, data storage, and keeping records of user consent. We describe use cases for back-end and front-end developers working for Symfony and its ecosystem.

Take your Http caching to the next level with xkey & Fastly

Andre Rømcke - English - Track B - Friday, 13:30

FOSHttpCache is extending Symfony in many ways, one recent addition is support for using Varnish xkey which allows for grace handling and faster performance. This also happens to be usable for use with Fastly with a bit of extension. Talk shows usage with a example application and also shows how this is used in eZ Platform v2 to gain higher cache hit ratio.

Symfony Cache: a premium recipe to fast apps

Nicolas Grekas - English - Track A - Friday, 14:15

Introduced in version 3.1, the Symfony Cache component has 3 promises: performance, safety, and ease of use. Internally and by default, we are already using it out of the box for system caches. It started as a reference implementation of the PSR-6 standard. Along the years and by contributions from the community, it gained a battle-tested feature-set and adapters for many storages. But the next version, 4.2, is the bigger milestone. With some raw examples and benchmarks, let's review how to select the best backend for your needs, wire them in your apps, do tags-based invalidation, protect against cache stampede, etc. Caching might be the most efficient strategy to fast apps.

Running Symfony on AWS Lambda

Neal Brooks - English - Track B - Friday, 14:15

Ever find yourself deploying your Symfony app to your EC2 boxes and wondering if you're using your resources wisely? You're almost certainly paying for CPU time you're not using, and scaling PHP applications on AWS can be tricky.

Wouldn't it be great to pay only for the resources you actually use, and if your site could scale instantly without needing to configure auto-scaling-groups, alarms, and rules? AWS Lambda gives us these features but only supports a few languages.

Until now, making PHP run on AWS Lambda has required a lot of hacks and workarounds. However, with brand new tools, a lot of the pain has been fixed for you.

In this session we'll go through the steps required to set up a real Symfony 4 service running on Lambda, served over HTTPS, and without launching a single EC2 instance or ELB.

Finally we'll think about how to retro-fit to older Symfony applications, and have a look at how we might benchmark application performance.

Building first-class REST APIs with Symfony

Michael Cullum - English - Track A - Friday, 15:20

Building REST APIs is becoming an ever more common task for PHP developers to do and whilst the task may often sound simple in that it involves reading some input, and getting (or persisting) to a data source and returning some JSON, there are a lot of common pitfalls and complications that you might encounter along the way.

In this talk we'll look at how we can build a simple maintainable REST API using the Symfony components that can perform some simple operations in ways that are clean and simple.

Symfony Messenger: Messages, Queues, Workers and more

Samuel ROZE - English - Track B - Friday, 15:20

Symfony 4.1 comes with a new Component: Messenger. It drastically simplifies the use of message buses and handling asynchronous operations using message queues such as RabbitMq.

In this talk, I will introduce you to this component and show you how to get started with it.

The Symfony Open-source Community

Zan Baldwin - English - Keynote - Friday, 16:35

The Symfony project is more than just a codebase; it is a fully-fledged community around what has become a professional standard within the PHP ecosystem. We’ll explore this wonderful community and its members, the direction its leadership is taking it in, and seek out the many ways to participate beyond just making a pull request. Community participation is easier than you think, can benefit you personally and enrich your life!