ZF2配置:覆盖数组值

时间:2014-09-18 16:32:22

标签: php configuration zend-framework2

在ZF2中的模块配置中,我有一些值,这些值是由用于图像处理的标志组成的数组。

我需要能够逐个项目地覆盖这些,但是,当我尝试简单地合并2个数组时。显然,我可以使用键来覆盖这种方式,但是我需要能够将值替换为一个整体,因为并非所有项目都需要所有标志。

当数组是数组而不是合并数组时,有没有办法完全覆盖值?

干杯

1 个答案:

答案 0 :(得分:1)

  

我需要能够整体替换这些值,因为并非所有项目都需要所有标志

如果您有多个共享相同模块的ZF2安装,只是在配置上它们不同,那么仅定义项目之间不同的配置值是有意义的。

然后,您将在全局配置文件(例如config/autoload/module.foo-module.global.config

中设置项目特定值

所有第三方模块都使用此方法;例如Doctrine ODM的module.config.php看起来像这样:

return array(
    'doctrine' => array(

        'connection' => array(
            'odm_default' => array(
                'server'           => 'localhost',
                'port'             => '27017',
                'connectionString' => null,
                'user'             => null,
                'password'         => null,
                'dbname'           => null,
                'options'          => array()
            ),
         ),
    ),
);

在每个项目中,我将覆盖(在您的情况下将添加)module.doctrine-mongo-odm.global.php中的特定配置

return array(
    'doctrine' => array(

        'connection' => array(
            'odm_default' => array(
                'server'    => '10.0.7.9',
                'dbname'    => 'my_database_name',
                'options'   => array(
                    'foo' => 'bar',
                ),
             ),
        ),
    ),
);

主要区别在于您不是删除配置值,而是添加。这使得每个模块都可以重复使用。