title: Why is Zend Framework so popular?
body: <p>I'm not a troll and my goal isn't to start a flame war; neither do I mean to disrespect the authors of the Zend Framework: there is a lot of fine work in it. But... I have a job to get done and I'm having a hard time reconciling the popularity of ZF against the reality of building apps with it. I would really like to know from others why they use Zend Framework. </p>
  
  <p>I am fairly new to the PHP world but I've done a lot of programming in many languages. After reading many tutorials and building a couple of apps in it, some core Zend Framework facilities feel like alpha code to me. For me the following fundamental weaknesses, among others, would seem too overwhelming to consider deploying apps with it -  but over and over again ZF is suggested as one of the, if not <i>the</i> leading framework.</p>
  
  <p>First let me say I find the much of ZF to be workable. Routing works pretty much as it should, the Layout facility is serviceable (though very different from templating systems such as JSP/ASP), as is the cache facility, etc. There seems to be a tendency in the community to stuff a lot of modeling (e.g. validation) and view logic (e.g. $this->headScript() - why should my controller have to care which js file my view requires?) into controllers but could be a matter of usage and not <i>necessarily</i> the framework's fault.</p>
  
  <p>Now for a couple of really serious (IMO) weaknesses I've experienced in my short time with it. I shudder to imagine the other areas I will discover in the future if I continue to build with it.</p>
  
  <p><strong>1. Form Layout</strong><br />
  Many people seem to be unhappy with the lack of control over form layout. How can you have a popular framework where constructing a simple form requires so much discussion?
  <a href="https://stackoverflow.com/questions/1277849/zend-framework-forms-decorators-and-validation-should-i-go-back-to-plain-html">Question 1</a> and <a href="https://stackoverflow.com/questions/1368721/zendform-with-xthml-scripts-without-using-decorators">question 2</a>.</p>
  
  <p><strong>2. Authentication/Authorization</strong><br />
  No one really seems to understand how to simply perform routine authentication/authorization. People [including yours truly] struggle with implementing simple access control. Further, the approach seems to lean on serialization for persistence, rather than traditional database storage of users and permissions.
  <a href="http://devzone.zend.com/node/view/id/1665" rel="nofollow noreferrer">A confusing example</a>, <a href="http://framework.zend.com/wiki/pages/viewpage.action?pageId=39025" rel="nofollow noreferrer">a proposal to enhance the facility</a>, <a href="http://devzone.zend.com/article/3509-Zend_Acl-and-MVC-Integration-Part-I-Basic-Use" rel="nofollow noreferrer">a tutorial - part I</a>,
  <a href="http://devzone.zend.com/article/3510" rel="nofollow noreferrer">and part II</a>. This is too much work guys!</p>
  
  <p>Are my perceived weaknesses not real or somehow not a problem? Why or why not? Why did you choose Zend Framework (or not)? Are there other areas that you've found to be so painful that you want to dump ZF for a different approach? Thanks for your opinions.</p>