Schedule

Thursday, December 1st

  Track A Track B
08:00
09:00
Badge pickup and welcome light breakfast
09:00
09:15
Opening / Welcome
09:15
09:55
Keynote
Fabien Potencier
10:00
10:40
PSR-6 & Symfony Cache: fast by standards
Nicolas Grekas
Do not (always) use FOSUserBundle!
Damien Alexandre
10:40
11:10
Break
11:10
11:50
5 Years with Symfony
Paweł Jędrzejewski
Making your applications work together through interoperability
Michael Cullum
11:50
13:30
Lunch
13:30
14:10
Challenges and solutions in getting your open source company to contribution
Jeffrey A. McGuire
14:15
14:55
Knowing your state machines
Tobias Nyholm
Profiling PHP
Sebastian Grodzicki
14:55
15:25
Break
15:25
16:05
When To Abstract
Kore Nordmann
A CQRS and Event Sourcing approach in a Symfony application
Samuel ROZE
16:10
16:50
Lightning talks session
17:00
18:00
Sound of Symfony - Live on Stage!
Magnus Nordlander
18:15
21:30
Conference Social Event - Snacks and drinks - Free

Friday, December 2nd

  Track A Track B
08:00
09:00
Welcome light breakfast
09:00
09:15
Pre-keynote
09:15
09:55
Symfony Distributions Reloaded
Fabien Potencier
10:00
10:40
Soup up Symfony - Keep PHP Alive Between Requests
Andrew Carter
Make your code do your job
Larry Garfield
10:40
11:10
Break
11:10
11:50
Modernizing with Symfony
Alexander M. Turek
Jenkins deployment pipeline
Nicole Cordes
11:50
13:30
Lunch
13:30
14:10
Kafka will get the message across, guaranteed
David Zuelke
Symfony Plugin for PhpStorm - 3 years later
Daniel Espendiller
14:15
14:55
A year of Symfony
Sarah Khalil
Form : One use case, many optimizations
Jules Pietri
14:55
15:25
Break
15:25
16:05
HTTP Security: headers as a shield over your application
Romain Neutron
Adventures in Symfony - Building an MMO-RPG
Margaret Staples
16:10
16:50
How I learned to Stop Wiring and Love Autowiring Containers
Beau Simensen
Handling 10k Requests/second With Symfony and Varnish
Alexander Lisachenko
16:50
17:15
Closing Ceremony

Saturday, December 3rd

09:30
16:30
Hackday

Keynote

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

Keynote

PSR-6 & Symfony Cache: fast by standards

Nicolas Grekas - English - Track A - Thursday, 10:00

After several months of discussion, the PHP-FIG (PHP Framework Interop Group) published the PSR-6. Its goal is to enable interoperability between caching systems implementations - a mandatory aspect to improve performance in your applications. At this conference, we will see the benefits and limitations of PSR-6, we will discuss the various existing cache solutions (Doctrine, Stash, php-cache), and I will present the Symfony 3.1 Cache component and its latest improvements in version 3.2.

Do not (always) use FOSUserBundle!

Damien Alexandre - English - Track B - Thursday, 10:00

FOSUserBundle is evil - and I will explain why. Under this trollish introduction hide a conference about Bundles and how to chose them to avoid spending more time extending them than actually building your application which is why you needed Symfony in the first place and yeah I know this sentence is hard to read, like a project where there is too many Bundles.

5 Years with Symfony

Paweł Jędrzejewski - English - Track A - Thursday, 11:10

Sylius development has started together with one of the early alpha releases of Symfony framework. 5 years later it is the most promising competitor to existing solutions of the mainstream market, like Magento.

From the age of 18, I have built my entire professional career on Symfony. This allowed me to work on countless projects. I have seen Symfony in action on very small web projects, high availability websites, complex APIs and 14 year old legacy systems. I have integrated various Symfony applications, combining Sylius with eZ Platform, Akeneo PIM and existing custom apps.

In this talk I’d like to share everything I have learned during this journey. I show real world examples of projects, share solutions to both technical and more business-related problems and prove that Symfony is one of the greatest communities and projects that ever existed. This talk is supposed to be a retrospective of Symfony evolution from my perspective and knowledge-feast for the attendees.

Making your applications work together through interoperability

Michael Cullum - English - Track B - Thursday, 11:10

In all our careers at some point we’ll have multiple web applications or services we need to be able to integrate; whether that be as simple as sharing sessions or more complex such as manipulating HTTP responses provided by applications in libraries. Integration is hard but for frameworks, libraries and applications interoperability is an ever increasing goal. In this talk we’ll discuss how we can go further with interoperability to make your life easier: how you can make Drupal, phpBB and eZ Publish integrate with your Symfony web app; how you can use Symfony Components and Zend Framework modules side by side; and about decoupling your applications from any one specific library by depending on interfaces instead of implementations.

Challenges and solutions in getting your open source company to contribution

Jeffrey A. McGuire - English - Keynote - Thursday, 13:30

How open source contribution benefits businesses and practical help on getting management and technical teams on the same page and contributing on a regular basis.

Many companies and their developers struggle to incorporate contribution into their daily working routines. Why do we struggle with contributing if we "believe" in open source and "know" contribution is “obviously” a good thing for all of us?

Chris Jansen and Jeffrey A. "jam" McGuire present practical, actionable ways to better unify our beliefs and our actions regarding open source contribution based on an extensive academic study Chris carried out in 2015. Our goal is to get management and developers on the same page about open source contribution and help you make it happen.

  • How open source contribution benefits your company.
  • Roadblocks and unblockers to contribution for management and technical teams.
  • Proven, actionable tactics, improved developer workflows.
  • Contribution beyond code and patches.

Knowing your state machines

Tobias Nyholm - English - Track A - Thursday, 14:15

Web development is not just about delivering a response. It is also about writing good code. The state pattern will help you move complexity from being all over your code to one or more state machines. This talk will introduce state machines, show how to identify uses of them and implement them in your Symfony application in an object oriented manner using the Symfony Workflow component.

Profiling PHP

Sebastian Grodzicki - English - Track B - Thursday, 14:15

You cannot improve what you cannot measure. That's why profiling applications should always be the first step before trying to improve its performance. Learn how to spot your applications' bottlenecks and how to adopt profiling into your developer pipeline.

When To Abstract

Kore Nordmann - English - Track A - Thursday, 15:25

One of the most difficult challenges in a developers life is finding the "right" abstraction, or at least the best one given the current circumstances. The core problem is that abstraction is a bet on the future development of the software and we know that future is volatile. I will discuss different environments of software development and we find a base for you to decide when and what to abstract.

A CQRS and Event Sourcing approach in a Symfony application

Samuel ROZE - English - Track B - Thursday, 15:25

The Command Query Responsibility Segregation pattern, instead of the traditional CRUD, introduce different models for reading and updating the application states. Event Sourcing is the idea that every state of your application can be represented by a sequence of events. Using these two principles as the heart of a system or an application is quite common but can be challenging if we don’t use the right tools or architecture. With a concrete application as example, we’ll go through the architecture, libraries and bundles we can use in a Symfony application in order to apply these patterns.

Sound of Symfony - Live on Stage!

Magnus Nordlander - English - Keynote - Thursday, 17:00

Sound of Symfony is the unofficial Symfony Podcast, and this time we're doing a live special right from the SymfonyCon stage!

Join us for a 40 minutes conference bonanza of on-stage guest interviews, discussions about PHP and Symfony, questions from the audience - and some never-before-heard clips from the Sound of Symfony archives!

Symfony Distributions Reloaded

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

Keynote

Soup up Symfony - Keep PHP Alive Between Requests

Andrew Carter - English - Track A - Friday, 10:00

Traditionally in PHP, each HTTP request is processed by a new instance of an application. This "shared nothing" architecture provides crucial simplicity, security and stability.

However, we can keep Symfony applications alive between requests and vastly improve their performance.

Wait a minute before charging off! When using PHP in this way we have to pay careful attention to session handling, application state and memory leaks. This talk will demonstrate how to develop and configure Symfony applications for this purpose.

Make your code do your job

Larry Garfield - English - Track B - Friday, 10:00

Throughout history, advancement has come from reducing the amount of work that needs to be done by humans and letting technology do it for us. Long before computers, humans were letting our technology work for us in order to make ourselves better.

So too with programming. We have the ability in PHP, as in many languages, to make the language syntax itself find bugs for us. It's called "types", and is a far too under-utilized part of the language. Even many seasoned developers don't realize the benefits that come from having strict, explicit types in their code rather than relying on haphazard "duck typing".

This talk will make the case that your best way to improve your productivity as a developer is to make your language itself do your work for you. With PHP 7's improved typing support that is now even easier than ever.

Modernizing with Symfony

Alexander M. Turek - English - Track A - Friday, 11:10

A legacy application. It still earns the money, but maintaining the old code base is getting harder and harder. Feature development is too slow and the bug tracker is full of severe defect reports.

Rewriting the whole application is something your developers would simply love to do. But the rewrite probably won't go live before it's running out of budget.

Let's have a look at simple techniques that allow us to transform our legacy application step by step into a modern Symfony application.

Jenkins deployment pipeline

Nicole Cordes - English - Track B - Friday, 11:10

Currently I'm working on a flexible deployment pipeline in Jenkins where I can reuse some templates and create new pipelines within minutes. I'd like to present my solution, talk about the basics of Jenkins and explain why it's the better way to deploy with a CI server.

Kafka will get the message across, guaranteed

David Zuelke - English - Track A - Friday, 13:30

Apache Kafka is a message broker that offers not only massive scalability and fault tolerance, but also unique guarantees around message ordering and delivery. Relaying billing information, detecting security-related events, storing information at high-throughput - Kafka greatly simplifies it all and gives developers a chance to rethink the data flows between components, moving information interchange into the center of their architectures.

Symfony Plugin for PhpStorm - 3 years later

Daniel Espendiller - English - Track B - Friday, 13:30

In 2013 the "Symfony Plugin" for PhpStorm was born. Today we see over 1 million downloads and several other plugins for projects like Laravel, Drupal, Shopware, ... that help to improve your productivity.

I will talk about Symfony related features and will give you some tips and tricks. Also, we take a look at the infrastructure behind these plugins and how I maintain all of them.

A year of Symfony

Sarah Khalil - English - Track A - Friday, 14:15

Last year, Symfony 3 was out right before the SymfonyCon. A lot happened! 52 blog posts to help you keep up with all new things, 1200+ pull requests, 2 new versions out… Well I'm sure you missed something. Let's review what happened during last year: basically we'll see and/or discover nice new features that appeared since the last SymfonyCon.

Form : One use case, many optimizations

Jules Pietri - English - Track B - Friday, 14:15

By taking one of the most usual and simple use case: a post and some tags, we will identify many ways to optimize our work with forms.

The focus will be about:

  • simple many-to-many relationship,
  • data mapping,
  • PHP 7 scalar type hints,
  • form type inheritance mechanism,

while some tricks will be shared along the way.

Also the final may reveal a surprise! Stay tuned ;)

HTTP Security: headers as a shield over your application

Romain Neutron - English - Track A - Friday, 15:25

You are all aware of what are XSS vulnerabilities; do you know what's Clickjacking? You have probably heard of Root Certificate compromission; do you know the principle of a protocol downgrade attack?

You're coming to SymfonyCon because you are HTTP application developers and I will present you awesome HTTP headers that will help you to mitigate these kind of attacks, just using W3C WebAppSec recommendations.

Adventures in Symfony - Building an MMO-RPG

Margaret Staples - English - Track B - Friday, 15:25

Ride along on a tour of my latest adventure! I will unpack my process for turning design ideas into game mechanics, talk about the tools that were used (including Symfony and other open source goodies), examine major roadblocks and how they were overcome, give a postmortem on key implementation decisions, and share the highlights of what I learned along the way.

How I learned to Stop Wiring and Love Autowiring Containers

Beau Simensen - English - Track A - Friday, 16:10

Does managing YAML, XML or PHP container configurations make you sad? Do you dread making changes to your classes' dependencies for fear of the inevitable container configuration wiring blues? Life doesn't have to be this way! Not if your container supports autowiring, that is. Hear one developer's journey into the wild world of containers, learn how autowiring works, and find out how using autowiring can free you from having to manually configure every dependency.

Handling 10k Requests/second With Symfony and Varnish

Alexander Lisachenko - English - Track B - Friday, 16:10

It is believed that the Symfony framework is quite heavy and it can be difficult to develop a website that will be able to work under the high load. It is true, but does this mean that it is impossible to implement a dynamic caching and to update only a small part of entire page as data is updated? This talk will give your an answer to that. It is Varnish, ESI-blocks and load balancing. With hundreds of thousands of unique visitors and million hits a day, we continue to use Symfony, and do not see any problems.

SensioLabs

92-98, Boulevard Victor Hugo
92115 Clichy Cedex - France
+33 1 40 99 82 89
support [at] sensiolabs.com

© 2017 SensioLabs - About