在ZF2中的模块配置中,我有一些值,这些值是由用于图像操作的标志组成的数组。
我需要能够在逐个项目的基础上覆盖这些,然而,当我尝试时,它只是合并了两个数组。显然,我可以使用键来覆盖这种方式,但我需要能够将值作为一个整体来替换,因为并非所有项目都需要所有标志。
有没有一种方法可以在值是数组时完全覆盖它,而不是合并数组?
干杯
我需要能够将值作为一个整体进行替换,因为并非所有项目都需要所有标志
如果您有多个ZF2安装共享同一个模块,而它们只是在配置上不同,那么只定义项目之间不存在差异的配置值是有意义的。
然后,您将在全局配置文件(例如config/autoload/module.foo-module.global.config
)中设置项目特定值
所有第三方模块都使用这种方法;例如条令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',
),
),
),
),
);
主要区别在于,您不是删除配置值,而是添加。这使您的每个模块都更加可重用。