> > Why? I have developed framework using PHP namespaces and studied Zend
> > Framework source codes and result is: if we use the new resolution rules > > (1), than in nearly all cases developers must prefix class names with \, > > only in few cases prefix is not required. Why? Because usually classes in > > more nested namespaces extends classes in less nested namespaces. If you
> > don't believe, look in framework sources :-)
>
> A quick study on the Zend Framework source reveals most top-level classes
> requiring, using, and accepting as arguments "more inner" classes and
> interfaces in the relevant namespace:
>
> Zend_Acl ==> Zend_Acl_Resource_Interface, Zend_Acl_Role_Interface,
> Zend_Acl_Role_Registry, Zend_Acl_Assert_Registry...
>
> Regard, Stan Vassilev


Stan, ZF doesn't use namespaces yet. This is not namespaced code. Namespaced code requires different convention (http://framework.zend.com/wiki/display/ZFPROP/Naming+conventions+for+2.0+-+Matthew+Ratzloff).

In namespaced code there cannot be class Interface in namespace Zend\Acl\Role. There must be class RoleInterface in Zend\Acl namespace. Similary class Zend_Acl become Acl in Zend\Acl namespace. So look at the code with namespace-eyes. Classes Zend_Acl, Zend_Acl_Resource_Interface, Zend_Acl_Role_Interface... will exist in one namespace.

Every concrete plugins extending Zend\Controller\AbstractPlugin may exists in namespace Zend\Controllers\Plugins. Classes in Zend\Controller may not use classes in Zend\Controllers\Plugins (more abstract/common may not use concrete plugins), but plugins in Zend\Controllers\Plugins depends on classes in Zend\Controller. The "dependency-direction" should be one way.

DG.


--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to