Wednesday 14 October 2009

Zend Framework 1.8 Web Application Development book review

Zend Framework 1.8 Web Application DevelopmentAs the days are rapidly getting shorter, my reading appetite grows potentially and this evening I finished the 'Zend Framework 1.8 Web Application Development' book written by Keith Pope. While Keith worked on the book, I peeked several times at it's tutorial application, dubbed the Storefront, to get me going with the new Zend_Application component. Looking at it's code made me feel certain to get another great digest of the new features and components of version 1.8, and also a different practical perspective on web application development with the Zend Framework, once the book has been published. Therefor I got in touch with the publisher Packt and fortunately got a copy of which I'd like to share a personal review in this blog post.

What's in it?

The book opens with a quick run-through of the Model-View-Controller (MVC) architecture by creating a project structure via Zend_Tool and building a first very basic web application. While this introduction intentionally skips over a lot of details, the following chapter provides very detailed insights into the Zend Framework's MVC components by explaining the surrounded objects, the Design Patterns they are based upon and their interactions.

After laying out that hefty block of theory the aforementioned tutorial application is introduced and built incrementally over several chapters; each one going into more detail for the specific application aspect. The highlight content of these chapters reach from introducing the Fat Model Skinny Controller concept, thoughts on Model design strategies which are reflected in a custom Storefront Model design, to developing application specific Front Controller Plugins, Action-Helpers, and View-Helpers. The application walk-through is completed by looking at general techniques to optimize the Storefront application and by building an automated PHPUnit Test Suite of functional tests utilizing Zend_Test to keep the Zend Framework based application self-reliant and refactorable.

Conclusion

The book by Keith Pope provides any interested PHP developer, who's not already sold on a specific framework, a thorough introduction to the vivid Zend Framework and it's use in a MVC based web application development context. The content of the book is delivered in a fluent, very enthusiastic and 'knowledge-pillowed' writing tone. By implementing or working through the Storefront application seasoned web developers using older versions of the Framework will get a good blue sheet on new components like Zend_Application and it's implication in the bootstrapping process; while new developers tending towards picking up the Zend Framework will get a current and well compiled guide, which might first start off with a steep learning-curve but will turn into profund knowledge once hanging in there.

The only thing that seemed a bit odd to me, was the utilization of Ant instead of Phing as the build tool for the Storefront application to set the application environment, to remove all require_once statements from the framework library and to run the PHPUnit Test Suite; but this might also be inflicted by my Phing nuttiness.

6 comments:

Matthew Weier O'Phinney said...

The choice of Ant versus Phing makes a little sense when you consider integrating with CruiseControl and/or phpUnderControl -- which use Ant files to control "builds".

Raphael Stolt said...

Hi Matthew,

I knew this remark on Ant 'vs' Phing would steer some of the comments in this direction. And you're making a totally valid point in the context of hooking it into a Continuous Integration (CI) environment, although CI isn't mentioned once in the book.

Unknown said...

Does the book get into details about how to set up domain models, data access objects, mappers, etc? If yes, how much detail are provided for these topics?

Raphael Stolt said...

Hi Ankit,

The book provides a whole chapter on Models where the Domain Model is covered slightly due to this very big subject. As mentioned in the review a application specific Storefront Models is introduced based upon the concept of Model Resources.

Take a look at the book's Table of Contents to see if it might cover your needs.

mf said...

thanks for the review, it was helpful

Kevin Matin said...

Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I’ll be subscribing to your feed and I hope you post again soon


Thanks
Enterprise Application Development USA