Over the past two weeks I’ve read two fantastic books. They were game changers in terms of my understanding of PHP. “PHP Objects, Patterns, and Practice” by Matt Zandstra and “Modern PHP: New Features and Good Practices” by Josh Lockhart.
I’ve understood OOP syntactically for a while, but couldn’t apply it to real world projects. “PHP Objects, Patterns, and Practice” really helped me get to that next level. The meat of the book focuses on design patterns (many of which you’d see in Gang of Four book – he makes great references to that and other helpful books on design patterns), but what really set it apart for me was his holistic approach. It started by emphasizing the importance of good design (with examples), went through several patterns, and then rounded out the material with an introduction on several other important topics for a well-versed developer to understand. Things like testing, automation, and continuous integration. The book itself doesn’t expound at great length on those latter topics, but certainly gives you enough to learn more about them and more importantly understand how they should fit into your development ecosystem. I finished this book with a much better grasp of object oriented design, as well as what else I needed to have in my toolkit to be a great developer.
Next, I read “Modern PHP: New Features and Good Practices“. Although unrelated, I felt like this book was an extension of where I left off with Matt’s book. It was another shining example of all the practices I needed to master if I truly wanted to be a great developer. From real-world object oriented design principles, to everything else you need to release functional, reusable, maintainable code out into the wild. Again, it didn’t necessarily go into all of the depth I would need to master a particular topic, but more than enough to get up an running, and suggestions for additional resources.
Both books were a perfect balance of tangible, practical teaching I could apply in my projects now, as well as a jumping off point for what I need to learn to become a rockstar developer. I highly recommend them.