> The we already lost the game and should return to the design stage, > because deep knowledge of design patterns as the prerequisite for using > any framework is totally unacceptable if we talking about PHP target > audience. It can help you do advanced stuff, but it should not be > required. Basic usage should be - *extremely simple*.
I was speaking about the internals, not the API. I have faith that the users will be able to use `$registry = Zend_Registry::getInstance();`, even if they don't understand the why or how. :-) In any event, there's an alternative to using the Singleton: $registry = new Zend_Registry(); If they're not using MVC, then there's any number of ways they may be handling passing this object. We currently have no Zend_Controller_Page class--that could make it more evident how to handle situations like this. > In the case of over-designed interfaces - they have to. Framework should > be so easy to use that you don't really need to read the manual for at > least basic usage - just to look at a couple of the examples and be > intuitively ready to use it without even diving into the details. Of > course, it is not always possible - if you talk about complex stuff. But > trivial stuff should stay trivial. In that case, we need to go back to the drawing board with components that model "simple" processes like Zend_Session (Zend_Session_Namespace adds value, but is not intuitive) or the new Zend_Log class (passing a Zend_Log_Writer_* object to the constructor could be confusing). I understand what you're saying, and agree to a point; I think it's reasonable to try to accommodate users in terms of ease of use. But I think it's equally reasonable to require a little effort on their part, as well. -Matt
