Today an interesting blog post on Zend Framework has made to the Hacker News front page. I have to agree with the author - Zend Framework is an over-engineered piece of software.
Over the years, I had developed many projects primarily using CodeIgniter and later on, Kohana. There was one project that was larger in scale compared to an average PHP project (whatever that means), so I decided to use Zend Framework to take advantage of its component-based structure.
The result? It was dreadful.
At that time there wasn’t any built-in or quick n’ easy way of bootstrapping a Zend Framework project, so we had to cook up our own. The documentation was absolutely horrible despite its completeness viewed from a distance - to find anything useful, Google is more likely to provide you with the answer, even from the results on the documentation site. And of course, the framework felt so heavy and long-winded. It, felt, Java.
In terms of the code structure, Zend Framework is almost the complete opposite of CakePHP - no offense to the CakePHP developers and users, but if you take a look at each framework’s source code, you’ll know what I mean.
Having layers and layers of structures might appeal to certain users (Enterprise baby!), but does anyone still remember back in the day, how Zend was announcing/marketing the Zend Framework?
That’s right, Zend Framework was marketed as an extremely simple to use web framework. In fact, we can still read Andi Gutsmans’ post on this topic. Let me quote the relevant part (emphasis mine):
As some know, our ultimate goal for the framework is what we call “Extreme Simplicity”. Some might have heard me use that term in some of the talks regarding PHP, and I’d like to bring this concept over to the framework. I believe this is what the PHP spirit is all about and the idea behind it is that it’s possible to create very simple & easy-to-use languages&frameworks which still remain powerful and flexible.
Can anyone, including the Zend Framework developers, honestly say that Zend Framework is an extremely easy to use framework?