Packt Publishing contacted me to write a review on Keith Pope's Zend Framework 1.8 – Web Application Development. They sent me the book and enjoyed the time reading it. So here is my review.
Structure & Language
The book follows a linear structure for introducing the reader into Zend's Framework. It starts with a short introduction to the MVC pattern, followed by some of the core MVC components. While reading the chapters you get a good and stable introduction to the MVC implementation of Zend. The development process leads to a small but usable example application using most of the MVC components of ZF. The language is readable and not too complex. This a highly rated criteria for a non native speaker, like me.
I was very surprised, that the introduction to MVC is that short. Thumbs up for that. I don't like books that spend 20% of their pages with introducing something that is not the book's main topic. Every main chapter is introduces with a few bullet points to define the aims of the chapters content. There is also a single line that states the theoretical state of the users knowledge at the end of the chapter. Every smaller "chapter" within a main chapter is also well structured. In most cases it explains the software design background in a few sentences to place the component into the big picture. You will also find a summary at the end of each main chapter. This summary contains the learning goals and a small summary, so that the reader can check if he or she is ready to continue.
First of all, this is the first English book I've read about ZF > 1.8. There is one German competitor on this sector (Ralf Eggert – Das Zend Framework: Von den Grundlagen bis zur fertigen Anwendung). The explanation of the MVC components of ZF is very complete and detailed. You won't miss a thing on that. I love the chapter about the models, as Keith writes about domain architectures and unbinding the persistence models from the business model tier. Wonderful! This is the first time someone wrote about something different than just Zend_Db & Zend_Db_Table! Keep going like that. The idea of writing a shop application instead of a blog kept me reading. I'm bored of the tutorials that always do the same things. The decidion to build a shop also adds more complexity to the appliction and makes the examples more valueable for the real world development tasks.
The book was one of the best ZF MVC introductions I've ever read – and thats the point. The book is an introduction into Zend's understanding of MVC. It does not cover some of the most important libraries that ZF provides (like Zend_Http and all the Zend_Service Classes). I would have liked to see more of the "Component Library" – aspect of the Zend Framework. The chapter about unit testing is, from my point of view, misplaced. As the Test Driven Development gains more importance in these days, the information about testing each aspect of the development process should have been melted into the timeline of the book. (Like: Learn -> Develop -> Test -> Learn -> Develop -> ….).
Last thing on the personal aspects is Keith's decision to use ant as build tool. Some people might prefer phing as it is "real" PHP, but ant has proven in many years of Java enterprise development and it can be used for 90% of the continuous integration tools. So why not teach the people something they can really use? Good thing Keith!
Read this book if you are interested in Zend Framework. This is the best start you can get (for now). It will cover all MVC basics you need to get you app up and running, but you will need more than this book to get into all the components Zend Framework offers today.