The way the code of an application is organized greatly influences its maintainability, extendability and testability. Finding flaws in your object-oriented design as early as possible can therefore make the difference between an awesome application and a not so good one. Luckily there are a lot of indicators to look out for while you are coding, telling you that you should probably consider refactoring – often without even looking at your actual code! This session is an introduction to the most common code smells and some of the related anti-patterns in OO PHP projects. You will learn how to recognize indicators of deeper underlying problems in your application, and how to prevent these problems from happening in the first place.