ZF2全局配置设置

时间:2013-09-15 21:44:23

标签: php module zend-framework2 config

我的目标是在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']

我现在希望在没有ConfigAwareInterface中间的情况下调用$ GLOBALS ['group2'] ['subgroup'] ['keyA']。

我提供了以下快速伪代码来帮助我实现这一目标:

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 个答案:

答案 0 :(得分:0)

您始终可以通过以下方式轻松访问配置:

$this->getServiceLocator()->get('config');

Akrabat所做的是提供一个短手getConfig() -

相关问题