After a few bloody noses and black-eye's from my previous post "Four Reasons to Hate CakePHP", I think I might have been a little too hard on the little guy. No, seriously, I really think I might have been a little to hard on it. After reading some of the feedback, and reading some counter points by Matt on his blog, "[point] 8 Reasons to Hate CakePHP", It made me reconsider my post. My opinion remains the same, but now I realize my perspective is off. (I'd accept way off.)
The first thing I failed to consider is that one single tool is not an end-all solution to all problems. A fair argument has been made about Zend Framework -- it's not quite a framework in the traditional sense of things. CakePHP is exactly that; a framework. That is the essence of half of the problems that I and my colleagues have experienced when it comes time to scale. CakePHP provides a well structured framework (note: when I said structured before, I was referring to architecture, not file system structure) to quickly develop applications. (Do I discredit myself by saying that it's very good at doing just that?) With CakePHP, you get an application that's ready to go out of the box -- not so much with Zend Framework. Zend Framework is largely a library, not a framework. This is, after all, why it's able to stay out of your way so easily -- it wasn't intended to be there in the first place.
CakePHP is exactly that; a framework
The second thing that put me back in perspective is an article I recently read about how Zend Framework is "winning the wrong war". (I apologize to the author, I can't find your post to link to.) That posting makes a very good point. It talks about how Zend Framework strives to gain the approval of Ruby on Rails folk, but it's going about it the wrong way. Zend Framework is riddled with extremely useful components, thorough testing, and great documentation (most of the time). The trouble is, most people just don't care about any of that. Like that posting describes, most Ruby on Rails folk love RoR because of the little time to market required to get a conceived idea online. I'll go ahead and admit: Time to market with CakePHP is much faster than Zend Framework.
CakePHP's "weakness" (as I would have earlier described it) of being simple and concrete is where Zend Framework's "strength" lies. Yes, with Zend Framework you can have an application online fairly quickly, but you don't get anything out of the box. It provides all of the components needed, and recommends a file structure, but doesn't require one. This allows you to pick and choose what you want Zend Framework to do for you. But this flexibility comes at the price of a learning curve, and at the price of extra bloat for those sites not in need of the hundreds of extra components that it provides.
To make up for my skewed perspective, I hope to write a few more posts in the coming days comparing and contrasting features of both frameworks. In the mean time, allow this follow up to serve as somewhat of a rebuttal ![]()











