我的目标是在 Zend Framework 2 项目的每个模块中共享和编辑配置设置。经过研究,我来到了这个:http ://akrabat.com/zend-framework-2/injecting-configuration-into-a-zf2-controller/ 一开始效果很好,但在我的应用程序不断扩展到更多模块之后控制器,我不喜欢这个解决方案。准确地说,我不喜欢“实现”接口,添加 SetConfig 方法等等。相反,我希望能够在我的控制器中调用 $GLOBALS 或类似的东西并获取感兴趣的参数。
假设我有一个具有以下格式的文件 config.local.php:
return array(
'group1' => array(
'key1' => 'value1',
'key2' => 'value2',
)
'group2' => array (
'subgroup' => array (
'keyA' => 'valueA',
'keyB' => 'valueB',
),
)
);
现在,我正在按照上面的教程进行操作,在我的控制器中实现了 ConfigAwareInterface 之后,我得到了 valueA 使用
$this->config['group2']['subgroup']['keyA']
我现在希望只是调用 $GLOBALS['group2']['subgroup']['keyA'] 而不使用 ConfigAwareInterface 中间体。
我放置了以下快速伪代码来帮助我实现这一目标:
for every this->config as key => value
if $key is not array
$GLOBALS[$key] => $value
else
for every $value as $k => $v
$GLOBALS[$key][$k] => $value
由于 ZF2 和 php 对我来说是新的,我不完全确定我可以为 $GLOBALS 拥有超过 1 个索引/嵌套键,但我可以定制我的配置文件来避免这种情况。
上面可能还有其他逻辑错误。但只是为了明白这一点。现在,这是进行全局配置的最佳方法还是有更好的方法?
提前致谢。