标签: zend-config

如何在会话期间从Zend application.ini文件中检索参数?

可能重复:
如何使用zend框架在控制器上读取application.ini

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.iniZend_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 …
Run Code Online (Sandbox Code Playgroud)

configuration zend-framework zend-config zend-app-bootstrap

10
推荐指数
1
解决办法
2万
查看次数

如何在Zend框架中的application.ini中读取数组

如何使用zend_config对象读取application.ini文件中声明的数组.

例如1:supported.prop [] ="abc"supported.prop [] ="def"

当我说$ config-> supported-> prop时,它返回zend_config对象,而我期待返回一个数组.

例如2:supported.prop ="abc"这很简单,你说$ config-> supported-> prop给出字符串"abc".

所以,有人可以帮助我使用例如1,我试图用zend_config对象读取数组.

谢谢

zend-framework zend-config

4
推荐指数
1
解决办法
2794
查看次数

Zend Config Ini缓存

我的Zend应用程序使用3个ini配置文件,总共超过200行进行解析,包含100多条指令.每个请求都解析这些文件吗?有人说他们(就像这里这里一样).如果是这样,这不是效率问题吗?

这些链接中的评论含糊不清 - 有人说你应该避免ini配置文件并在PHP中进行配置,有人说你可以使用Zend_Cache_Frontend_File,有些人说这不是问题.但是,如果您预计会有相当多的流量,那么为每个请求分析200行文本肯定会很快成为问题吗?

如果您的确建议使用缓存技术,请详细说明如何实现缓存技术?

php zend-framework zend-cache zend-config

4
推荐指数
1
解决办法
8752
查看次数

ZF2:模块组

我正在学习ZF2并计划申请.

我想有1个应用程序与几组模块.每组模块最多可包含20多个模块.

我无法保证整个应用程序的任何模块的唯一名称,但我可以保证他们在模块组中的唯一性.

理想情况下使用Hosting路由器将请求路由到模块组.

例如 http://admin.mysite.com/foo/ =>'Admin/Foo/Index/Index',

http://special.mysite.com/foo/ =>'Special/Foo/Index/Index'

想法#1

我希望为每个模块组使用不同的module_path,并为模块组周围的模块路径命名空间,以确定模块类的唯一性.但发送到module_autoloader的模块似乎只关注传递的任何字符串的第一部分.

例如

array('modules' => array(
 'Admin\Admin','Admin\Bob','Admin\Users'
));
Run Code Online (Sandbox Code Playgroud)

这是我不明白的奇怪行为:

  • 所有三个都将指向正确的模块控制器,但它们加载Admin\Admin的视图(这是模块列表中的第一个)而不是它们自己的视图.
  • IE /用户,加载Admin\Users\IndexController,但使用视图脚本Admin\Admin\view\admin\Index\index.phtml

我已经设法通过对templateInjecter的一些小改动来解决这个问题,但它似乎很乱.

想法#2

只需将模块名称添加到其子目录中,例如

namespace AdminAdmin\Controller,
class  IndexController {}
Run Code Online (Sandbox Code Playgroud)

思考

  • 名称空间将优先于类前缀
  • 我们试图尽可能多地自动化,而不是为每个模块使用硬编码路由
  • 通过共同的cookie主机/内存缓存和数据库等使用共享模块进行身份验证的多个应用程序是有意义的...
  • 使用模块控制器的treeRouteStack内的托管类型路由将每个模块路由到某个子域...

题:

  • 他们是这种情况或类似情况的最佳做法,为什么?

php zend-config zend-framework2

2
推荐指数
1
解决办法
1189
查看次数

ZF2 - 在调用控制器之前将页面注入导航

我正在创建一个动态应用程序,其中内容通过CMS添加.在CMS内部,我正在设置一个db条目,该条目说明了每个内容页面使用的模块.

NodeId,ParentNodeId,Name_de,Name_en,ModuleName,foreignkey_ContentLinks,

在此表条目中如下所示:6,1,Veranstaltung-21-02-2013,Event-21-02-2013,Events,682

整个树应该在我的导航中结束(完全也在我的路由中).我不想在某个控制器中添加它,因为我的应用程序由一大堆模块组成,我想在所有模块中访问该信息.

我已经尝试在global.php中注入它,但无济于事,因为我不能在我的数据库适配器或该阶段的任何其他重要类.

有关最佳实践的想法或链接吗?

zend-navigation zend-route zend-config zend-framework2

2
推荐指数
1
解决办法
1244
查看次数

加载ini文件时发生致命异常

我的项目文件夹是demo,里面有文件夹应用程序,库和公共文件夹.在应用程序文件夹中,我有一个名为configs的文件夹,里面有一个文件'application.ini',其中包含我的数据库参数.因此,在应用程序目录中的bootstrap.php中,我在Zend注册表中的一个函数中设置了我的数据库_initDbAdapter:

$config = new Zend_Config_Ini('/demo/application/configs/application.ini', 'development');
Zend_Registry::set('config', $config);

$db = Zend_Db::factory($config, $config->resources->db->params->asArray());
Zend_register('db', $db);
Run Code Online (Sandbox Code Playgroud)

当我将浏览器指向localhost/demo/public /时(因为我的index.php驻留在公共文件夹中),我收到以下错误:

Fatal error: Uncaught exception 'Zend_Config_Exception' with message 'parse_ini_file(/demo/application/configs/application.ini):
failed to open stream: No such file or directory' in /var/www/demo/library/Zend/Config/Ini.php:182
Stack trace:
#0 /var/www/demo/library/Zend/Config/Ini.php(202): Zend_Config_Ini->_parseIniFile('/demo/applicati...')
#1 /var/www/demo/library/Zend/Config/Ini.php(126): Zend_Config_Ini->_loadIniFile('/demo/applicati...')
#2 /var/www/demo/application/Bootstrap.php(32): Zend_Config_Ini->__construct('/demo/applicati...', 'development')
#3 /var/www/demo/library/Zend/Application/Bootstrap/BootstrapAbstract.php(669): Bootstrap->_initDbAdapter()
#4 /var/www/demo/library/Zend/Application/Bootstrap/BootstrapAbstract.php(622): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('dbadapter')
#5 /var/www/demo/library/Zend/Application/Bootstrap/BootstrapAbstract.php(586): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap(NULL)
#6 /var/www/demo/library/Zend/Application.php(355): Zend_Application in /var/www/demo/library/Zend/Config/Ini.php on line 182
Run Code Online (Sandbox Code Playgroud)

zend-framework zend-db zend-config

2
推荐指数
1
解决办法
5218
查看次数

zend_form配置问题

我有一个如下结构:

/application
.....
--/modules
----/structure
------/controllers
--------/indexController.php
------/forms
--------/Department.php //here class Structure_Form_Department extends Zend_Form
Run Code Online (Sandbox Code Playgroud)

在indexController.php中

...
public function saveAction()
    {
        $request = $this->getRequest();
        $form = new Structure_Form_Department();//<-- error
....
}
Run Code Online (Sandbox Code Playgroud)

我得到错误

致命错误:未找到类"Structure_Form_Department"

当尝试zf enable form module- 接收:

An Error Has Occurred                         
 This project already has forms enabled.
Run Code Online (Sandbox Code Playgroud)

我认为这是一个配置问题...但不明白我需要做什么...

编辑1

这里找到了很好的解

但是从某种程度上说,zend开始重复执行_init...默认bootstrap.php中的函数....

zend-framework zend-config

1
推荐指数
1
解决办法
282
查看次数

Zf2设置新的配置值

我正在寻找在运行时期间用新的配置值覆盖现有配置值的可能性.

所以...... 这样会很好:

$this->serviceLocator->set('Config', $this->config);
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

php zend-config zend-framework2

1
推荐指数
1
解决办法
884
查看次数