So fast forward to now and I've been wanting to develop some new sites but I hated the thought of having to set them up. I downloaded the Zend Framework and as soon as you have your basic view, controller set up you quickly realize... wow that's about all I can do. Heck it doesn't even have pagination yet. Now Zend Framework will no doubt be successfull and most likely in a year from now should have a pretty good feature set but for today it looks like there is a king of the hill for PHP frameworks(for me anyway). CakePHP. This was my first real dive into a rails like MVC framework. I played with php on trax but it was also in it's infancy and to be honest I tried cakePHP a while ago and hated it because nothing worked. Well, they seem to have really busted their asses to get this thing up and running because I love it so far. I even got the MyBic Ajax framework working in about 2 minutes.
The real winner for this framework is the amount of documentation on the site and the google group that has an active user base. I was able to read through the docs and get up and running in 5 minutes! I did however have to digg (see I can't even spell dig right anymore) through a bunch of crap to find out how to use pagination.I had to sift through alot of old posts about proposals for pagination which had me trying to find the final solution to the issue :) When I did find it, in 5 more minutes I had paged results. The active record modeling is awesome. I can associate tables anyway I want as well as define runtime associations of tables.
The only real downside I see so far is performance. Since it's based on active record there are alot of queries made for each model or table. For example if I had a users table and and images table and the user could have many images you'd see the following queries made:
SELECT * FROM users
SELECT * FROM images where user_id = 1;
SELECT * FROM images where user_id = 2;
Now you can override the default active record pattern and just do a big join yourself to save some mysql cycles but active record is the true beauty of the framework so I'm going to try and live with it and see how it performs under more load. It's most likely not a problem but if your site happens to get "DUGG" one day or quickly becomes popular you could have some major nights of refactorting queries ahead of you.
All that taken with a grain of salt CakePHP has pretty much everything you need to at least get your site up and running in no time flat. Great documentation, good mailing list and a general sense that this framework is going places and should be a major if not the major competition to the Zend Framework. I'll probably say the more advanced developer will probably lean towards CakePHP as the Zend Framework is purely static calls at this point.