This tutorial will drive you inside PHP’s extension system. Under Linux, we’ll present PHP and its ecosystem, try to understand how it works then move to extensions. After foreseeing existing extensions, and theoretical concepts, we’ll start by making our own. We’ll learn how to enhance the language by adding functions, constants, INI options, classes, play […]
We’ve all experienced performance issues and we would typically turn to a profiler. Whether that’s something in userland, or a tool like xdebug or xhprof, the reason is the same: to figure out why our code is slow. This talk will take that inspection a step further and look under the hood of PHP, at […]
Traditionally, we create structural models for our applications, and store the state of these models in our databases. But there are alternatives: Event Sourcing is the idea that you can store all the domain events that affect an object, and replay these events to restore the object’s state. This may sound counterintuitive, because of all […]
A distributed system composed of multiple applications needs end-to-end testing to make sure the design contracts between the subsystems are respected, and as a form of last safety net to support Continuous Deployment. End-to-end tests are usually a scam due to their slowness and brittleness. Here’s how we wrote fast Behat scenarios that can be […]
At Etsy, we realized that if we wanted to approach Ilya Grigorik’s challenge of 1000ms time to glass, we would have to stop doing only one thing at a time, and make our servers start working in parallel. This talk will show how we built concurrent processing into our PHP API stack that powers Etsy’s […]
Where does design fit in agile projects? What is refactoring and what isn’t refactoring? What is the relationship between design and refactoring, and design and architecture? In this talk we will clarify these and other questions around emergent design and how a TDD/BDD tool like PhpSpec can help you with the process. We will look […]