Zend Framework 1.0

A while back, I posted a review of some existing Active Record implementations. One of those happened to be the Zend frameworks DB portion. I believe that was about the time of version 0.7, and I recently looked on their website and discovered 1.0 had been released.

I initially had low expectations, expecting 1.0 to just clean up 0.7 code, with minimal feature additions. After I downloaded it, I found out how wrong I was. The 1.0 release fixed every negative comment I had about 0.7. Although it’s not perfect, it’s a lot better than it used to be.

The Good..

  • Variables for defining which row and rowset classes to use in Zend_Db_Table. This enables custom row and rowset classes which I believe is a must-have.

  • Support for compound primary keys

  • Ability to cache the table meta data and prevent unnecessary database access

The Bad…

  • Application level support for foreign keys, namely cascading deletes. This feature is awesome since a lot of the tables I work with are myisam and don’t support cascading deletes. Too bad it doesn’t truly cascade. If you delete a single record, it will cascade that delete to all related tables, but no cascading after that. Basically, a worthless feature that causes more confusion than it helps. Just use MySQL’s Innodb storage engine and clean up the code

  • Complexity. Lots of classes and lots going on.