February 23-25, 2022
Online, Timezone GMT-5

Online PHP Conference

PHP Tests are great. But every once in a while we just wish they’d never been written. Have you wanted to alter functionality slightly but in doing so half the test suite goes from green to red?

This talk will investigate why this happens. In particular it looks at the coupling between tests and the code under test. We’ll investigate ways we can reduce this coupling and make out test suites more resilient to change.
PHP API Platform is a Symfony add-on that helps you automate the creation and personalization of a REST API. In this talk, you'll learn how to get started with API Platform. From a Doctrine data model, we'll generate a full featured series of CRUD API endpoints to read & write your model. We'll also cover more advanced use cases such as search filters, serialization contexts, authentication & authorizations, custom API endpoints, and extension points
PHP In today's event driven world, asynchronous background processing is a given. But using a rather traditional approach of periodically running scripts causes unnecessary delays and other problems. On the other hand, long running background processes are not exactly known to be a strong hold of PHP.

Is that still true for modern PHP? If not, how could such a process look like? Could we make it scale? Good questions, this talk has the answers!
PHP What makes a good API? What makes people *want* to use yours? It doesn't matter if it's REST, RPC, or something else - the API design should start with purpose. Let's talk about API evolution, verifiable consistency, clear description, runnable documentation, implementation architecture, and other techniques to minimize the development effort and ease the integration for our clients. Let's also dispel a few myths about HTTP, while we're at it.
PHP Already, PHP 8.1 is upon us, and it is bringing a truckload of new features and modernizations. Enumeration, readonly properties, new initializers, intersection types : we are in for a treat !
This session present all the upcoming incompatibilities, the exciting new features and how to get your code ready for them !
PHP Chances are your code already uses one of the HTTP PSRs in some way. In this 'no slides, just code' session we'll take a hands on look at how HTTP Messages (PSR-7) and HTTP Handlers (PSR-15) work, and how they can be properly leveraged.

Take a guided tour through both PSRs, and find out how you can use them effectively in your current codebase.
PHP Clickhouse is a high performance, time-series database that allows storage of massive amounts of rapidly queriable data. In this session, we'll do a brief introduction to how clickhouse works, its optimal use cases, some neat features that make a huge difference when gathering statistics, and the different ways you can interact with it from PHP.
PHP 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.
PHP First, there was the TestListener interface for extending PHPUnit. But it was abused, because it allowed more than just listening. Then came the TestHook interfaces, but they were inconvenient to use. Now PHPUnit 10 introduces a new event system for developing extensions and for in-depth analysis of your testsuite, hoping to overcome the shortcomings of its predecessors while providing new insights to test execution - and more!
PHP People who have worked with PHP, are familiar with PHP-FPM as the process behind their web server doing the work to execute PHP code. However it also has a huge, understated capability as a very reliable worker engine for queuing systems, which brings all the advantages of opcode cache, persistent connections to databases and alike, etc... This session will outline through a proof of concept how this can work and the advantages of this approach.
PHP You joined a project and the promised quality is... not there. The smallest change could make the project crumble under its own weight. Let's talk about such a project where we not only solved technical challenges, but also regained trust of the business, trained the team, prepared it for future requirements, and gained priceless experience in the process.
PHP 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).
PHP I came to symfony (back then in lowercase) before the first stable version. We are now at version 5. Over all those years the framework has evolved massively. In this talk, I'll go through some of the lessons I learned from the evolution of the framework as well as the ecosystem around it, and how we can apply those lessons in our day-to-day work.
PHP Routing is this thing about mapping URLs to controllers, right? But in fact, there is a lot going on. Understanding the routing process will enable you to write more flexible code and keep logic out of your controllers. In this talk, we will see how the Symfony routing actually works and then look at extension points like ParamConverters, custom request listeners and have a look at extending the route matching process.
PHP What's in the .git folder? How are commits stored? How do branches work? We'll dive deep into the objects folder, unpack commits, look at the types of DAG nodes, examine object content, and build a complete visualization of the stored content. We'll also quickly look through Git hooks, Git config, and ref logs. Come experience the zen of git.
PHP Symfony is not only a full stack framework, but also a collection of components that you can use stand alone in your projects to solve specific tasks. I will explain the ideas of the components and basic concepts, then look more specifically at the console component.
PHP Creating current time information in code is rather easy by calling time() or new DateTimeImmutable() directly when the information is necessary. But that then makes the code a nightmare to test.

In this session we will see how the new PSR-20 allows us to change that by still making it easy to generate current time information but also allowing one to test the code. And we will get some background info why it was designed in such a way.

Explore all 145 sessions