dpc09: Day 1 – Matthew Weier O’Phinney – Zend Framework tutorial

I attended the Matthew Weier O’Phinney talk about Zend Framework. It was an 8 hour (more or less) tutorial on how to use it, mainly focusing on the application design-side of things. I always regret when such a speaker is taunted with a majority of “RTFM” questions and there will always be the wisecrack raising hand and saying “This will generate a Parse error, because you forgot the semi-colon at the end of your statement”. (Are you kidding me….? |:( ). Well, it’s part of the deal, I suppose.

Anyhow, all in all it was quite interesting. Most of the discussed Zend Framework features I am familiar with, and have already implemented as such, but some were new to me. Let’s skip the former and jump right to the latter:

Zend_Tool is now available in ZF 1.8, which makes application scaffolding easy. I probably won’t be using this, since I always recreate sandboxes in SVN, to maintain version history. Might be useful in the future though, since some cool features are in there which make it possible to generate code for your controllers, view scripts and stuff like that, by using simple commands like zf create action baz bat which generates a bazAction() in the BatController, including the accompanying viewscript. I have yet to figure out if (and how) inflection is configurable, but since about everything ZF is, I’m currently assuming Zend_Tool will be too.

Also, a great deal of general application design was discussed. How to interpret the MVC principle, and how Martin Fowler is the godfather of all design patterns 😛 Not entirely untrue, of course. Matthew has a great feeling for decoupled design, and I think the entire Zend Framework reflects that. I have come to appreciate some aspects of it better, now I have seen the approach Matthew takes in designing applications. This means, for example, making models independent of their storage engine or type. Making controllers simply “gateways” to servicelayers, where the servicelayer knows what to do with a model, the model knows how to store and retrieve itself, and a DAO responsible for the actual storage and retrieval (wherever the data may come from or is put).

I think that was the main thing. Also a fair amount of “keep using only what you need, don’t use ZF for the sake of ZF, combine it with other stuff as much as you like.” Well, I am not gonna reproduce the entire slideshow here anyway. If you want to know more, there are probably more people out there blogging or tweeting about it.

Of course, I still don’t agree with most of the design choices in Zend_Form, but hey, I’m not gonna make it better, right? Or will I …? Tomorrow I will be attending Weier-O’Phinney’s talk on contributing. I think I might. Contribute, that is. Dive in, and when all water is clear and ripples have died out, a storm will come, and in stead of Zend_Form, there shall be Zend_Form 2.0, beautiful and treacherous as the sea All shall love me and despair!!

Hm…. Maybe I should diminish and remain “drm” 😉

What other sessions I will visit tomorrow I’m not yet sure about, but I will surely fill you in on it tomorrow, as the dpc09 day 2 has past.