Zend Framework - 从Controller读取Application.ini值

时间:2010-03-29 14:14:49

标签: zend-framework web-applications configuration

我正在尝试将我的Google Maps API密钥存储在我的application.ini文件中,并且我希望能够在需要时从我的控制器中读取它。如何从控制器中读取application.ini中的值?

谢谢!

3 个答案:

答案 0 :(得分:5)

This文章可能会帮到你。作者解释了如何从application.ini文件中检索gmail连接参数。

您可能想尝试:

$bootstrap = $this->getInvokeArg('bootstrap');
$aConfig = $bootstrap->getOptions();
googleMapsKey = $aConfig['your_resource']['your_key'];

答案 1 :(得分:5)

我倾向于在引导程序中执行此操作,然后正如Gordon提到的那样将其丢弃在注册表中。然后,您可以将其从注册表中移除。

$this->config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV);
Zend_Registry::set('config', $this->config);

此外,对于他的观点,控制器往往是错误的位置,除非你使用多个键访问API,我想,但即便如此,你应该能够将逻辑放在模型中以便选择注册表中的密钥。

答案 2 :(得分:3)

通过FrontController

// bootstrap
$front->setParam('GMapsApiKey', 123456);

// controller
$this->getFrontController()->getParam('GMapsApiKey');

或注册表:

// bootstrap
Zend_Registry::set('GMapsApiKey', '123456');

// controller
Zend_Registry::get('GMapsApiKey');

但是,由于模型中发生了对Google Maps API的访问,因此您的控制器不需要知道API密钥。