问题标签 [zend-config]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - ZF2:模块组
我正在学习ZF2并计划应用程序。
我想要一个包含多组模块的应用程序。每组模块最多可包含 20 多个模块。
我无法保证整个应用程序的任何模块的名称都是唯一的,但我可以保证它们在模块组中的唯一性。
理想情况下,使用主机路由器将请求路由到模块组。
例如 http://admin.mysite.com/foo/ => 'Admin/Foo/Index/Index',
http://special.mysite.com/foo/ => '特殊/Foo/Index/Index'
想法#1
我希望为每个模块组使用不同的 module_path 并在模块组周围命名模块路径以确定模块类的唯一性。但是发送到 module_autoloader 的模块似乎只关注传递的任何字符串的第一部分。
例如
这会得到我不明白的奇怪行为:
- 这三个都将指向正确的模块控制器,但它们会加载 Admin\Admin 的视图(模块列表中的第一个)而不是它们自己的视图。
- IE /users,加载 Admin\Users\IndexController 但使用视图脚本 Admin\Admin\view\admin\Index\index.phtml
我已经设法通过对 templateInjecter 的一些小改动来解决这个问题,但它看起来很乱。
想法#2
只需将模块名称添加到它们的子目录中,例如
想法
- 命名空间将优于类前缀
- 我们正在尝试尽可能多地自动化,而不是为每个模块使用硬编码的路由
- 使用共享模块的多个应用程序通过通用 cookie 主机/memcache 和 db 等进行身份验证可能是有意义的......
- 使用模块控制器等的treeRouteStack中的托管类型路由将每个模块路由到某个子域......
问题:
- 他们是这种情况或类似情况的最佳实践吗?为什么?
zend-framework - 如何在会话期间从 Zend application.ini 文件中检索参数?
application.ini
是 ZF 中的配置文件。除了 ZF 手册中所写的默认设置之外,我还有更多设置。但是,例如,我如何从我的动作控制器中检索这些参数?在会话期间存储此配置在哪里更好?
该类Bootstrap_Abstract
具有返回读取文件getOptions()
的简单 php 数组的方法:application.ini
我想从它的 oop 样式中获取元素:
ZF 具有Zend_Config_Ini
读取.ini
's 并准确返回 ArrayObject 的类。但无论如何application.ini
,我想避免再读Zend_Config_Ini
一次。Zend_Application
但是Bootstrap
orZend_Application
类不提供从application.ini
.
第二,我可以在哪里存储这个 $config 呢?在Zend_Registry
?
然后在我的一些动作控制器中检索它:
但这似乎有点低效:我有一个以通常 php 数组形式存在application.ini
的Bootstrap
副本和一个相同application.ini
但以 ArrayObject 形式存在的副本Zend_Registry
。并且必须执行两个步骤才能从我的配置中获取参数。我怎样才能更有效地解决这个问题?
zend-framework - Using class constants in Zend_Config_Ini application.ini
I've got several constants defined in one of my classes and would like to use on of them in my application.ini, is this possible?
This does not seem to work, it just parses it as a string
zend-framework - 如何将参数从控制器传递到 Zend_Form?
我知道这个问题已经在这里回答了。但这对我不起作用。表单是使用 PluginLoader 生成的:
付款.php:
正如我所看到的,加载方法只返回类名,所以new $formClass();
是相等的new Form_Payment()
,但为什么这不接受参数?
global-variables - 如何使用 Zend\Config(应用程序范围的变量)
主要问题是不言自明的,但我将给出一些侧面示例:
我在搞清楚数据库时遇到了麻烦,尽管我似乎可以使用 ServiceManager 的东西进行配置
我想为 cookie 名称使用常量,所以如果有冲突,我可以很容易地更改它们。
$config = new \Zend\Config\Config(include $_SERVER['DOCUMENT_ROOT'] . '/../config.php');
当前,每次我想访问我的全局 config.php 文件时,我都会打电话。许多以前的解决方案都在 Zend 1 中(例如 Zend_Registry)。这是正确的方法吗?一遍又一遍地使用它似乎有点笨拙。有没有办法利用模块的配置文件来设置模块范围的变量/常量?
除非我完全想念它,否则 Zend 2 中没有 application.ini
存储 recaptcha 公钥/私钥
我还将我的配置文件用于会话变量(与 相同的想法
$_SESSION[CONST_NAME]
),这使得上面的配置文件非常笨拙。对会话名称进行硬编码会更好吗?像:
php - 使用 Zend2 读取/写入配置的模块化方式
我想在我的模块中有一堆设置,它们应该可以从应用程序中写入。由于它们是应用程序设置,我认为它的表格效率不高(它只有一行)。
我找到了 Zend 模块Zend\Config
,它似乎可以编写配置文件,而 Zend 又可以使用它。
建议写入module.config.php
? 还是放到不同的文件中?我还能将它加载到标准模块配置中吗?
我对 Zend 和这种完全模块化的方法很陌生,所以我想对此进行一些澄清。
zend-framework2 - Zend 框架 2 在模型类中访问全局配置
我有一个模型类,它不扩展任何核心 Zend 模块。这个模型是从我以前的 Zend 框架 1 应用程序导入的。我可以通过将其转换为 namespace 来调用它的方法。我遇到的问题是在定义的方法中读取全局配置。
如果是控制器,我可以使用以下代码访问全局配置
但是我们应该怎么做才能访问模型类中的配置。下面是我的模型类的样子
我是 Zend 框架 2 的新手,请建议任何方法来实现这一点。
在上面的描述中,模型意味着(MVC 模型类),其中包含一些业务逻辑。
zend-framework2 - 如何在 Zend 框架 2 中添加 APC 适配器到缓存类映射
我需要使用操作码缓存中的 APC 在 Zend 框架 2 应用程序中缓存我的每个模块的类映射。有没有办法解决这个问题。
application.config.php 中的 AFAIK
// 用于创建类映射缓存文件名的键。'module_map_cache_key' => '测试',
// 缓存合并配置的路径。
通过这样做,Zend 缓存使用文件系统进行缓存,我需要它来使用 APC 操作码缓存,我该如何实现。
我知道在 bootstrap.php 的 zend 框架 1 中使用 APC。
但为此,我在官方网站上找不到任何文档。
提前感谢您回复此帖子
php - 在 zend 框架中将 index.php 移出应用程序根目录
我正在尝试更改 index.php 的路径。
我有一个引导带 zend 结构。
所以我创建了一个名为 newapp 的新文件夹,它的路径是我们的 index.php 所在的根路径。
然后我将 index.php 复制到 newapp 以便我可以从 newapp 目录加载应用程序。
但问题是我无法从我复制的 index.php 加载配置文件。它会引发错误,如下所示。
注意我的文件夹结构
我的实际 index.php 在下面给出
我应该在 index.php 中更改什么?
我尝试将配置文件的路径更改为
APPLICATION_PATH 。'/../../configs/application.ini'
但没用 - Zend 库可用,因为我已经为它设置了路径变量
windows的环境变量设置。
- 我也试过这个
realpath(dirname(__FILE__))."/.."
但应用程序未加载。
zend-framework2 - 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 中注入它,但无济于事,因为在那个阶段我不能使用我的数据库适配器或任何其他重要的类。
任何想法或最佳实践链接?