如何检索Zend_Application使用的Zend_Config?

时间:2009-10-18 14:48:31

标签: zend-framework configuration

我正在迁移我的应用程序以使用Zend_Application进行引导。我曾经把Zend_Config作为我的$ registry的密钥。

现在我不知道如何以这种方式使用它(无需重新加载配置文件)。 我知道可以使用$ application-> getOptions(),但这给了我一个数组,我必须在代码中的任何地方进行更改,其中$ config被用作对象($ config-> services-> storage) )类似于数组($ config ['services'] ['storage'])。

2 个答案:

答案 0 :(得分:4)

Zend_Registry::set('config', new Zend_Config($this->getOptions()));

就是你所需要的一切。

答案 1 :(得分:2)

Zend_Application仅使用(并存储)config.ini文件,如调用“new Zend_Application(ENV, '.../app.ini');”作为数组的第二个参数所示。为了能够将其存储为对象,您必须重新解析它。

您可以在引导程序中添加一个函数来执行此操作,并将其存储到注册表中,

<?php
// in 'class Bootstrap extends Zend_Application_Bootstrap_Bootstrap'

protected function _initConfig()
{
    // config
    //#Zend_Registry::set('config', $this->getOptions());  // as an array

    $ZFOptions      = array(); // could be: 'allowModifications'=>true
    $section        = 'production';  // or from the environment
    $configFilename = APPLICATION_PATH .'/configs/application.ini';
    $config = new Zend_Config_Ini($configFilename, $section, $ZFOptions);
    Zend_Registry::set('config', $config);  // as an object
}