2013-04-07 244 views
1

我們可以在另一個模塊內部有多個模塊嗎?Zend Framework上的嵌套模塊2

可能是相似的結構是這樣的:

/module 
    /Application 
     /module 
      /SubApplication1 
      /SubApplication2 

我正在尋找一個簡單的例子或文章的人知道這件事。我已經Google搜索,但似乎到目前爲止沒有探索zf2的這部分。

+0

還有一個模塊中使用多個命名空間的方式,這是非常簡單的。請在[這裏]看看(http://stackoverflow.com/questions/15777140/multiple-namespaces-under-same-module-in-zf2/15779461#15779461),看你能怎麼做。要做你願意做的事情,我認爲你必須用'ModuleManager'做很多工作。 – 2013-04-07 07:39:30

回答

1

這是很容易的模塊中有多個命名空間。您唯一需要做的就是爲Zend自動加載器提供配置。對於Zend\Loader\StandardAutoloader的配置可以在模塊中進行設置,並會是這個樣子:

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', 
      ), 
     ), 
    ); 
} 

對於Zend\Loader\ClassMapAutoloader它是同一個概念。您只需將命名空間與類文件相匹配即可:

// file: ~/autoload_classmap.php 
return array(
    'SomeNamespace\Controller\SomeController' => __DIR__ . '/src/SomeNamespace/Controller/SomeController.php', 
    'OtherNamespace\Controller\OtherController' => __DIR__ . '/src/OtherNamespace/Controller/OtherController.php', 
); 

需要注意的地方!確保您的子模塊名稱空間的名稱不與其他模塊名稱空間衝突。

希望這有助於:)

斯托揚