As projects grow in size and complexity, it can be easy to get lost in your own code base. What is in the array that this method returns? Do i need to call a setter before i can really use this object? Is the doc block still correct? Today, we’re going to find out. And the best part? It’s only gonna take a few seconds to do so. In this talk we’ll explore the static analysis tools that answer these questions for us. We’ll also use these tools to add new functionality, like read only properties and generics, to PHP, without the need for a new language.