Those in the US might have missed it but last week was a big announcement for the Zend Community: Zend Framework 1.0.0 production release*. In the press release, the Product Manger Bill Karwin notes the MVC framework, the database ORM layer (called Zend_Db), the Lucen-compatible search engine, and the fact that the whole thing is BSD licensed. First of all, congrats to all of them… but as always, I believe that they're underselling the framework.
I've been using the Zend Framework in various incarnations since September/October of last year. At that point it was called 0.6 (0.3?) and therefore despite it having some useful functionality, I didn't consider it for production use… but even then I noted to a couple team members how they were underselling the framework. The functionality that was there was pretty nifty and seemed rock solid. My concern was how much the API's would change in later releases. We all know that most bets are off with pre-1.0 releases.
So I stayed out of it but kept an eye on things, lurked on the lists, and implemented a simple service with Zend_Pdf. Nothing fantastic but it got things rolling. In April at the MySQL Conference, I caught an update from Bill Karwin on Zend_Db… and was convinced to dive in again. So in the very next presentation session, I implemented the Zend_Log. In under an hour, I had full logging of everything happening in the system. That was with v0.9.1 and it worked beautifully with all the later versions – haven't tried 1.0.0 yet – and has made life so much simpler.
Even more important, just a few weeks ago, I started on a brand new product (called MH for now). Wanting to start off fresh and quickly, I started playing with CakePHP but it tended to focus on having the application structured in a very specific way. So I went back to the Zend Framework… with Zend_Db, Zend_Log, and Zend_Feed an afternoon of work gave me a prototype of three of the five major components. And the custom code was small, tight, and simple.
Sure, the Zend Framework isn't going to meet all your needs. I'm not saying that it could. But I think – like many other tools – you're hindering yourself if you don't at least stop and spend an hour or two understanding how it works and what functionality it can offer you. That said, my business focus and skillset do not include database abstraction layers and as long as it works, I have more important things to think about… how about you?
* I'm not the most unbiased commenter out there… I've attended ZendCon the past two years, will be speaking there this year, have met about half the team and have talked big and small ideas with some of them over a beer or two. Plus, I have signed the Contributor License Agreement, so technically, I'm probably a Contributor… though only in paperwork, not in code.