Il est facile d'avoir plusieurs espaces de noms dans votre module. La seule chose que vous devez faire est de fournir la configuration au (x) autochargeur (s) Zend. Pour la Zend\Loader\StandardAutoloader
la configuration peut être réglée dans le module et ressemblerait à quelque chose comme ceci:
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\ClassMapAutoloader' => array(
__DIR__ . '/autoload_classmap.php',
),
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
// This is the default namespace most probably the module dir name
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
// And this is for your custom namespace within the module
'SomeNamespace' => __DIR__ . '/src/' . 'SomeNamespace',
'OtherNamespace' => __DIR__ . '/src/' . 'OtherNamespace',
),
),
);
}
Pour le Zend\Loader\ClassMapAutoloader
est le même concept. Vous avez juste besoin de faire correspondre les espaces de noms aux fichiers de classe:
// file: ~/autoload_classmap.php
return array(
'SomeNamespace\Controller\SomeController' => __DIR__ . '/src/SomeNamespace/Controller/SomeController.php',
'OtherNamespace\Controller\OtherController' => __DIR__ . '/src/OtherNamespace/Controller/OtherController.php',
);
Quelque chose à être prudent! Assurez-vous que le nom de l'espace de nom de votre sous-module ne soit pas en conflit avec les espaces de noms d'autres modules.
Hope this helps :)
Stoyan
Il est un moyen d'utiliser plusieurs espaces de noms dans un module, il est très simple. Jetez un coup d'oeil [ici] (http://stackoverflow.com/questions/15777140/multiple-namespaces-under-same-module-in-zf2/15779461#15779461) pour voir comment vous pouvez le faire. Pour faire ce que vous voulez faire, je pense que vous devrez travailler beaucoup avec 'ModuleManager'. –