Of course you know about testing, clean code, and continuous integration, but it just seems impossible to apply these concepts to the nasty legacy application that you are in charge of. This workshop will give you the tools to transform it into a testable, modular, collaboration-friendly application running on a modern PHP framework. We will start with a legacy application which nobody wants to touch out of fear of breaking something. The first step will be to set up a build pipeline and resolve dependency issues by introducing Composer. We will wrap the application in a web-framework, so that we can break it into modular pieces. That allows us to test components individually. After a few small refactoring steps using simple design patterns we can introduce a dependency injection framework. Leaving you with a maintainable application that you will be proud of when you show it to other developers. This is a code-along tutorial, so bring your Linux or Mac laptop with your favourite PHP IDE installed! We expect you to know the basic Git commands, an understanding of MVC frameworks (e.g. Symfony) will be helpful but is not necessary. You will get all the concepts you need through code examples and we will provide iterative versions of the application, so you can jump in at any time.
Franz Thoma, Julian Exner, and Franziska Hinkelmann are software consultants for TNG Technolgoy Consulting in Munich. For their client, they work on migrating a legacy enterprise PHP application to several smaller modular applications that areto be maintained and further developed by a team of 25 developers. They focus on clean, maintanable code with high test coverage that can be easily understood and extended even by new team members. They have contributed to various open source projects such as Mockery and are active members in the PHP Usergroup Munich.