jshpro2 wrote:I would definitely disagree with anyone that simply said it was "bad design".
So would I. Nevertheless, Zend does seem to do a lot that I don't like, such as imposing a rather tight coupling between controllers and views. One might argue that in the MVC pattern such as it is used in websites, the controller layer is actually part of the view, so the coupling might not be as bad as it is in my mind.
Nah, the problems I've been having with Zend Framework is in it's lack in simplicity and my lack of interest and motivation of learning the framework, I think. I'm sure that most of the problems I've been having are imposed by my ignorance -- not bad design. But, when looking at other frameworks, such as Konstrukt (*1) or Symfony (*2) for that matter, I think they are easier to use. That doesn't mean they are better, that just means that they're much more appealing to me.
Some of the components that I've used in the past had API's I didn't like. For example, I've always disliked the static calls to classes such as registries and the frontcontroller. Then again, I've always disliked static calls, period. I also dislike Zend_Form, because in my humble opinion writing a form shouldn't be as complicated. I spend a lot of time on forums on software development in PHP and when looking at the questions on Zend_Form, I really have my doubts about how clear the API is.
That said, I'll shoot into defence: I haven't used ZF for a long time, and even when I did I really doubt I used it the most efficient way. There probably were easier ways to accomplish what I wanted. Maybe things have improved, maybe not. Maybe I should try using it again.
pytrin wrote:I think you guys are missing the point. ZF does have some bloat, but it's more a component library than a tight framework (like CakePHP).
I think I'll have to agree, but that is exactly the problem I've had with ZF. It's a component library, not a fullstack and interwoven framework, such as CakePHP or Symfony. To use one of ZF's components, you'll have to be familiar with it's API (of course), you'll have to construct it and you'll have to use it. To use certain functionality in Symfony for example, you'll have to know how to call a certain "convenience" method that does everything on the API that you'd have to do yourself in ZF.
Concluding: yes, this is all my opinion and no, ZF doesn't suffer from "bad design". In my opinion it does make simple things complicated, which I dislike. Doing a simple thing might require you to have a lot of knowledge about the underlying API, which I also dislike. Is ZF bad or poorly designed? No. Do I like it? No.
*1: I know, the ZF vs. Konstrukt is not a fair comparison, considering ZF does a hell of a lot more than Konstrukt. Nevertheless, I think Konstrukt's manual (yes, the whole three pages) are really clear, as opposed to the ZF manual.
*2: I know, the ZF vs. Symfony is not a fair comparison either, since Symfony is a fullstack, interwoven framework where ZF is based on loosely coupled components.