我正在尝试将我的Google Maps API密钥存储在我的application.ini文件中,并且我希望能够在需要时从我的控制器中读取它。如何从控制器中读取application.ini中的值?
谢谢!
答案 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密钥。