Gre*_*een 10 configuration zend-framework zend-config zend-app-bootstrap
application.ini是ZF中的配置文件.我有一些设置,而不仅仅是ZF手册所写的那些默认设置.但是,如何从我的动作控制器中检索这些参数呢?在会话期间存储此配置的位置更好?
的Bootstrap_Abstract类有getOptions()方法,它返回读取的一个简单的PHP阵列application.ini的文件:
$app = new Zend_Application(APPLICATION_ENV, '/application.ini');
$config = $app->bootstrap()->getOptions(); // $config is a php array of application.ini
Run Code Online (Sandbox Code Playgroud)
而且我想从oop-style获得元素形式:
$param = $config[one][two]; // vs.
$param = $config->one->two; // like this
Run Code Online (Sandbox Code Playgroud)
ZF有一个Zend_Config_Ini类,它读取.ini并返回ArrayObject.但我想避免读取application.ini有Zend_Config_Ini一个更多的时间后Zend_Application已反正已经阅读.但是,Bootstrap或者Zend_Application类没有提供一些自动创建ArrayObject application.ini.
第二,我可以在哪里存储这个$ config呢?在Zend_Registry?
Zend_Registry::set('config', $config);
Run Code Online (Sandbox Code Playgroud)
然后在我的一些动作控制器中检索它:
$config = Zend_Registry::get('config'); // I retrieve config
$param = $config->one->two; // I retrieve parameter from it and use it
Run Code Online (Sandbox Code Playgroud)
但它似乎有点低效率的:我有一个副本application.ini中Bootstrap的常用PHP数组的形式和相同的一个副本application.ini,但在自ArrayObject的形式Zend_Registry了.并且必须通过两个步骤从我的配置中获取参数.如何更有效地解决这个问题?
dre*_*010 25
使用Zend_Controller_Front,您可以application.ini使用以下代码从应用程序中的任何位置(控制器,插件,模型等)检索信息:
$config = Zend_Controller_Front::getInstance()->getParam('bootstrap');
Run Code Online (Sandbox Code Playgroud)
在application.ini你说你有这样的选择:
apikeys.google.maps.id = "abc"
apikeys.google.maps.key = "123456789"
apikeys.twitter.oauth = "20jg9032jg9320gj30"
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用上述$config变量访问这些值:
$apikeys = $config->getOption('apikeys');
$mapsId = $apikeys['google']['maps']['id']; // abc
$maksKey = $apikeys['google']['maps']['key']; // 123456789
$twitKey = $apikeys['twitter']['oauth']; // 20jg9032jg9320gj30
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
16399 次 |
| 最近记录: |