zf2 ModuleManager配置合并 - 删除密钥

sup*_*bie 4 zend-framework2

我不确定这是否可行,但......

zf2 ModuleManager将按顺序合并模块的所有配置数组,然后合并任何用户定义的配置数组.所以,如果$config1$config2你合并得到$merged.

$config1 = [
   'key1' => 1,
   'key2' => 2,
   'key3' => 3
]

$config2 = [
    'key1' => 'different',
    'key4' => 4
]

$merged = [
    'key1' => 'different',
    'key2' => 2
    'key3' => 3
    'key4' => 4
]
Run Code Online (Sandbox Code Playgroud)

这很好,适用于大多数情况.但是,如果我想删除密钥怎么办?如果我有$config1如上所述,并希望在$merged下面创建此替代,那么应该是什么值$config2(通知key2被删除)?

$merged = [
    'key1' => 'different',
    'key3' => 3
    'key4' => 4
]
Run Code Online (Sandbox Code Playgroud)

sup*_*bie 6

现在已在zf2 master中修复此问题.可能在zf2 2.3中.请参阅这个伟大的教程,了解它是如何完成的(参见MERGE_CONFIG事件)

https://github.com/weierophinney/zf2-documentation/blob/71aac39e9ae78eaca3739458c5a2ccf15f4cdb2c/docs/languages/en/tutorials/config.advanced.rst

BTW在撰写本教程时仍然只是一个PR,而不是官方文档.