我正在迁移我的应用程序以使用Zend_Application进行引导。我曾经把Zend_Config作为我的$ registry的密钥。
现在我不知道如何以这种方式使用它(无需重新加载配置文件)。 我知道可以使用$ application-> getOptions(),但这给了我一个数组,我必须在代码中的任何地方进行更改,其中$ config被用作对象($ config-> services-> storage) )类似于数组($ config ['services'] ['storage'])。
答案 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
}