在my module.config.php中分离子导航和顶级导航配置

在my module.config.php中分离子导航和顶级导航配置,php,dependency-injection,zend-framework2,Php,Dependency Injection,Zend Framework2,使用zf2,我的一个模块的每页上都会出现一个subnav条。它使用视图辅助对象和局部(全部包含在模块中)进行渲染。模块从自己的module.config.php中提取配置: 'navigation' => array( 'default' => array( array( 'label' => 'aaa', 'route' => 'aaa', ), array(

使用zf2,我的一个模块的每页上都会出现一个subnav条。它使用视图辅助对象和局部(全部包含在模块中)进行渲染。模块从自己的module.config.php中提取配置:

'navigation' => array(
    'default' => array(
        array(
            'label' => 'aaa',
            'route' => 'aaa',
        ),
        array(
            'label' => 'bbb',
            'route' => 'bbb',
        ),
        array(
            'label' => 'ccc',
            'route' => 'ccc', ...
现在,我想为在应用程序模块中呈现的站点范围的导航栏添加一个配置。当然,问题是配置被合并了,所以我不能只在应用程序模块的module.config.php中添加一个“导航”键

什么时候处理这个问题最好?如何在service manager中存储和隔离模块特定的子AV和顶级nav

当然,问题是配置被合并了

为什么这是个问题

应用程序(module.config.php)

foodModule(module.config)

合并配置

'navigation' => array(
   'default' => array(
     // application pages...
   ),
  'foo_nav' => array(
     // foo pages...
   ),
   'foo_module_specific_sidebar_name' = array(
     // foo sidebar pages
   )
),
ZF2使用

如果输入数组具有相同的字符串键,那么这些键的值将合并到一个数组中,并且这是递归完成的,因此如果其中一个值是数组本身,函数也会将其与另一个数组中的相应项合并


如果您没有复制导航名称,并且将配置放置在何处,那么这并不重要

如何访问其他配置?现在在如下$this->navbar('navigation')的视图中调用我的视图助手。如何在导航配置中传递嵌套数组?
'navigation' = array(
  'foo_nav' => array(
     // foo pages...
   ),
   'foo_module_specific_sidebar_name' = array(
     // foo sidebar pages
   )
),
'navigation' => array(
   'default' => array(
     // application pages...
   ),
  'foo_nav' => array(
     // foo pages...
   ),
   'foo_module_specific_sidebar_name' = array(
     // foo sidebar pages
   )
),