PHP UK is pleased to announce the 15th Annual PHP UK conference; a 2-day event with 4 great tracks held at at The Brewery, in the heart of the City of London.

Wednesday 19th February 2020

Getting Started with Event-sourcing
Workshop by Tim Huijzers in Workshop Track 1 (8 hour)

Over the last couple of years, I have heard of Event sourcing but didn’t really know where to start until I did a tutorial at DPC ‘17. After having some basic information it was time to start a Hackathon and after that something production worthy. In this talk I will try to give the best information to get started and to know some of the problems you can face if you begin event-sourcing, and we'll build a working application and use Docker and React to tie everything together with events commands and projections.

REST easy with Api Platform
Workshop by Antonio Peric-Mazar in Workshop Track 2 (8 hour)

We’ll start by creating a fully-featured API in just a few minutes with API Platform, Symfony and Doctrine. The API will support pagination, data validation, access control, relation embedding, filters, and error handling. It will be documented with OpenAPI and will have a nice UI done in React.

Deploying your first Micro-Service application to Kubernetes
Workshop by Bastian Hofmann in Workshop Track 3 (8 hour)

Kubernetes is a very powerful container orchestration platform that is quickly gaining traction and gives you lots of benefits in deploying, running and scaling your microservice web application. But it has also a steep learning curve. In this workshop you will deploy your first application which consists of multiple Micro-Services to Kubernetes and learn how you can use persistent storage and service meshes and set up sensible monitoring and logging tooling.

Introduction to Test Driven Development Workshop
Workshop by Mark Bradley in Workshop Track 4 (8 hour)

Want to ship code faster? Want to work on features over bugs? Want more confidence in your code? You need to TEST ALL THE THINGS. Writing tests before you write code can be an intimidating concept. During this hands on workshop you will learn how to start using Test Driven Development.

Object Reorientation
Talk by Christopher Riley in Social Track (30 minutes)

We are all SOLID developers who like to keep DRY, these are rules we stick to to try keep our code clean. Despite this, we often end up writing procedural code wrapped up inside objects. This code can be hard for our colleagues and collaborators to get to grips with and understand.Join me for this object reorientation as we take a look at how we can leverage the power of object oriented design to write code which is not just SOLID, but easy to reason about and easy for others to understand.

Thursday 20th February 2020

PHP, The Last True Open Source Language
Keynote by Chris Tankersley in Shopware Track (30 minutes)

Open Source is one of the most powerful human concepts that has come out of the computer revolution. It is one of the key drivers of innovation to this day, despite being a core concept of computing back in the days of when large room-sized computers roamed the land. PHP was born out of the concept and ideals of open source software and is one of the most prevalent languages still in regular use. Why is that? What is so important about Open Source Software, PHP, and how does it affect you as a developer? Let me tell you a story…

The La(te)st PHP 7 — What's new in PHP 7.4
Talk by Derick Rethans in Shopware Track (1 hour)

We are going to look at the new features in PHP 7.4. Join me to have a look at how the type system is strengthened with typed properties and co- and contra-variance of methods, what changes to operator precedence are, and which new features, such as pre-loading classes, have been added.

Messy data != Messy code
Talk by Michelle Sanver in Queen Charlotte Track (1 hour)

The role of our API in Switzerland is to consume a lot of data that was not meant for a digital age and to transform it into beautiful output, for one of the biggest retailers in Switzerland. This is a journey of consuming a lot of data and APIs from different sources and in different formats. Some of them made us laugh, some of us got migraines. We built a smooth architecture to consume and output data. I am proud of our architecture that we seamlessly upgraded to keep the latest versions, now Symfony 4 along the way. I want to share with you how we managed to keep this API up to date for over 5 years and the architecture that we use to make it happen.

ATDD Bowling – A Practical BDD Workshop
Workshop by John Behrens in Design Track (2 hours, 15 minutes)

We're gonna play a bowling game, and by that we learn how to use the ATDD approach to write a software to calculate the results. ATDD is an approach within the BDD methodology. After this tutorial attendees will describe features using the gherkin language and implement them a test cases using Behat.

MySQL Indexes, Histograms, Locking Options, and Other Ways to Speed Up Your Queries
Workshop by Dave Stokes in Velocity Track (2 hours, 15 minutes)

Slow query? Add an index or two! But things are suddenly even slower! Indexes are great tools to speed data lookup but have overhead issues. Histograms don’t have that overhead but may not be suited. And how you lock rows also effects performance. So what do you do to speed up queries smartly? Slides available at

In the world of Password123, be someone’s #@%^)*!
Talk by Ipsha Bhidonia in Shopware Track (1 hour)

In case the talk title was too subtle, this session deals with ways to improve your security. Today authentication is evolving to keep up with enterprise and user needs. Hardening the authentication can also at times become a hassle for end user. Come find out how can we better secure our applications with multi-factor Authentication, while giving the users the comfort of Single Sign On. Learn about Identity Providers & how Federated Authentication works and dig deeper into the buzz words of the authentication world - OAuth and OIDC.

Serverless PHP applications with Bref
Talk by Matthieu Napoli in Queen Charlotte Track (1 hour)

Running PHP used to be as simple as copying files onto a shared host via FTP. What if we could get back to something that simple, but gain in security, performances and scalability as well? Let’s deploy PHP on AWS Lambda using Bref, an open-source solution for building serverless PHP applications.

GraphQL API in PHP
Talk by Drishti Jain in Shopware Track (1 hour)

APIs are a trivial part of development. But there are number of challenges that come along right from data fetching to iterating over endpoints. Worry not GraphQL is here to the rescue. Come dive into the world of GraphQL and learn to develop efficient and easy to understand APIs!

Guidelines on Designing for Accessibility in UX Design
Talk by Christiana Unaeze in Queen Charlotte Track (1 hour)

One main goal of great UX design is designing products that ANYONE can use. If you are not thinking about accessibility, then you’re not thinking about the full user experience. Accessibility makes it possible for people with disabilities to understand and navigate well designed products.

Getting started with Laravel
Workshop by Jason McCreary in Design Track (2 hours, 15 minutes)

Even with the install guide and docs, sometimes it’s daunting to get started with a new framework. In this tutorial, we’ll install a fresh Laravel project and review each of its core components to provide you a solid foundation.

Coroutine based concurrency with PHP and Swoole
Workshop by Bruce Dou in Velocity Track (2 hours, 15 minutes)

PHP Swoole has gained traction during the past several years. More and more people are interested with started to try PHP Swoole and use coroutine in PHP to build high performance, large scale web services, online game, micro-services.

PHP Generics Today (almost)
Talk by Dave Liddament in Shopware Track (1 hour)

Support for generics is high up many PHP developers’ wish lists. This talk is a deep dive into generics, their benefits and how, with existing tools, we can get the power of generics today

Meet Johnny the Deployer
Talk by Georgiana Gligor in Queen Charlotte Track (1 hour)

After working on AI-powered applications for a while now, we applied a lot of the lessons learned in building our own bot. Johnny, our DevOps chatbot, enables the release manager skip the confusing discussions with the tekkies and master the release process. It’s using NLP, so you don’t feel like talking to a bot, rather to a teammate. In this session you will learn about the building blocks of Johnny, dive into how each plays its part (pointing out reasoning behind our design decisions), and then we’ll get to do a live demo to see how all fits together. A bot framework is used to pass on information to “the brain”, which decodes your message using Natural Language Processing, and if it’s below a configurable certitude threshold comes and asks you for confirmation/clarification. Once the task to be executed is understood, the “brain” goes on to execute it and hand you over the results.

Keynote by Jessica Mauerhan in Shopware Track (30 minutes)

There is a stereotype of programmers as being antisocial and difficult, and unfortunately many of us take on this attitude as if it comes with the job – but it doesn’t have to be this way! I know it from experience, because I’ve been an angry, judgmental know-it-all, and I’m ready to tell you how I completely changed my attitude and refactored my life.

Friday 21st February 2020

Post Burnout Thoughts
Keynote by Joel Lord in Shopware Track (30 minutes)

Working in the tech industry can put a lot of pressure on people. Long hours, tight deadlines and a culture of always being connected can easily lead to depression or burnout. Through the sharing of the speaker’s personal experience, the attendees will learn to help people that might be experiencing distress and stop keeping this subject taboo. 1 in 5 Europeans are dealing with mental illness and the costs associated with this is too high to ignore. Join us to see how you can help to reduce the risks associated with this plague

Killer Docker Workflows for Development
Talk by Chris Tankersley in Shopware Track (1 hour)

Docker is not just about deploying containers to hundreds of servers. Developers need tools that help with day-to-day tasks and to do their job more effectively. Docker is a great addition to most workflows, from starting projects to writing utilities to make development less repetitive. Docker can help take care of many problems developers face during development such as “it works on my machine” as well as keeping tooling consistent between all of the people working on a project. See how easy it is to take an existing development setup and application and move it over to Docker, no matter your operating system.

What I Learned my First Year as a Full-time Programmer
Talk by Hilary Stohs-Krause in Queen Charlotte Track (1 hour)

If you’re a junior developer who’s ever wondered if joining tech was a terrible idea, this is the talk for you! The road to success is often zigzaggy, and having emerged on the other side, I feel it’s my duty to pass on some hard-earned lessons.

My app is secure… I think
Workshop by Wim Godden in Design Track (2 hours, 15 minutes)

More and more sites fall victim to data theft, so you probably know what to do to write secure code. But what else should you do to make sure your web stack is secure ? We’ll go through techniques to secure your environment and look at a bunch of tips and tricks to keep your customer data secure.

Build a GraphQL API with GraphQLite
Workshop by David Négrier in Velocity Track (2 hours, 15 minutes)

Ever wanted to create a GraphQL API but don’t know where to start? Come and join us in this tutorial. I will introduce GraphQLite, a framework agnostic library that makes working with GraphQL a breeze.

PHP OPCache, Realpath Cache and Preloading
Talk by Jachim Coudenys in Shopware Track (1 hour)

Everybody wants quick applications. A lot of that speed can be gained by the way you write your software, but a big chunk has to do with the way PHP is configured. As PHP matured, it got quicker, it used less memory and it accumulated a lot of settings which can be tuned for performance.The biggest, and often most misunderstood, features for performance are realpath cache (introduced in 5.3), OPCache (introduced in 5.5) and preloading (introduced in 7.4). This talk covers how these features work, how you can take advantage of them on your servers and during deployments, and tries to show all the ini settings relevant for performance.

Testing Legacy Code: Safe Refactoring
Talk by Katy Ereira in Queen Charlotte Track (1 hour)

I can't test this code because it's legacy. I need to update the code to make it testable. How can I manage that, without breaking existing functionality? I'll need to write some tests, but... argh!

Testing Hack with Hammock
Talk by Riya Dashoriya in Shopware Track (1 hour)

Introducing Hammock, a new open source mocking library for Hacklang. Hammock aims to provide disposable interfaces for mocking and spying public, protected, private, and static methods - as well as global functions - without altering their behavior. Using `fb_intercept` under the hood for mocking and unmocking, it also allows mocking of an individual object without affecting other instances of the same class. Come learn more about Hammock and how you can use this to test your code.

Introduction to Time Series
Talk by David McKay in Queen Charlotte Track (1 hour)

Time-Series has been the fastest growing database category, rated, by DBEngines, for over 2 years; yet, less than 15% store their time-series data in a time-series database. Do you?

Building Modern APIs
Workshop by Rob Allen in Design Track (2 hours, 15 minutes)

Modern applications increasingly require an API, whether to support rich client-side experiences, mobile apps, or to integrate with other systems. This hands-on, practical tutorial will teach you how to build a really excellent and robust API in PHP, based on Slim 4.

Highly Available Applications using Kubernetes and Managed Databases
Workshop by Gabriela D'Ávila Ferrara in Velocity Track (2 hours, 15 minutes)

This tutorial is a hands-on demonstration of building and deploying a highly available, fault tolerant web application. We will demonstrate how to deploy a PHP application in two ways, running in Google Kubernetes Engine while connecting to a MySQL instance on Cloud SQL, and secondly using Serverless tools like Cloud Run and connecting to the same database instance. You will come out of this tutorial knowing the bridge to unite your stateless code to your stateful database.

Containerization for Software Developers
Talk by Joel Lord in Shopware Track (1 hour)

Static code analysis can help you automate the boring parts of your code reviews. This talk is an overview of several tools and tips on how to use them in new and existing projects, featuring the following tools that can help you: Stop nit-picking your colleagues’ code style (Easy Coding Standard), keep up with best practices (Psalm, PHPStan, PHP Insights) and generate graphs visualising your dependencies (Deptrac, PhpMetrics).

Static Code Analysis: Judging a Forest by Its Trees
Talk by Christian Rades in Queen Charlotte Track (1 hour)

Static code analysis can help you automate the boring parts of your code reviews. This talk is an overview of several tools and tips on how to use them in new and existing projects, featuring the following tools that can help you: Stop nit-picking your colleagues’ code style (Easy Coding Standard), keep up with best practices (Psalm, PHPStan, PHP Insights) and generate graphs visualising your dependencies (Deptrac, PhpMetrics).

Apps, Stacks, and Frameworks: Avoiding “Shiny Object” Syndrome
Keynote by Angel Rivera in Shopware Track (30 minutes)

DevOps teams are in constant search for magical solutions to their technology woes, but not properly vetting solutions can cause unintended effects. These choices lead to bad design decisions & compound technical debt. In this talk, Angel will share advice to avoid the Shiny Object syndrome.