使用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。
什么时候处理这个问题最好?如何在服务管理器中存储和隔离模块特定的子区域和顶级导航?
答案 0 :(得分:0)
问题当然是合并的配置
为什么会出现问题?
应用程序(module.config.php)
'navigation' => array(
'default' => array(
// application pages...
)
),
FooModule(module.config)
'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
)
),
合并ZF2
如果输入数组具有相同的字符串键,则这些键的值将合并到一个数组中,并且这是递归完成的,因此如果其中一个值是数组本身,则该函数将合并它另一个数组中的相应条目
如果您没有复制导航名称,并且让the appropriate factories 放置配置并不重要。