我认为对于高流量项目来说使用 .ini 或 .xml 文件不是一个好主意,因为每个页面加载都会导致解析 config.ini 或 .xml 文件。
有什么方法可以用常规 php 数组替换使用 .ini/.xml 作为配置吗?
现在 php ini 看起来像这样......
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
phpSettings.date.timezone = "Europe/London"
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = rob
resources.db.params.password = 123456
resources.db.params.dbname = zf-tutorial
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
resources.view.doctype = "XHTML1_STRICT"
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
我想要这样的东西......
<?php
$config = array(
'production' => array(
['phpSettings.display_startup_errors'] => 0,
['phpSettings.display_errors'] => 0,
),
);
是否可以?我应该做什么以及如何告诉应用程序使用我自己的 Config.php?
谢谢你,对我的英语感到抱歉。
UPD:我认为将数组传递给 Zend_Application 构造函数是正确的方法吗?
是的,您可以使用数组来初始化数据Zend_Config
目的 ;看一眼Zend Framework 手册的此页 http://framework.zend.com/manual/en/zend.config.introduction.html (引用周围的情况例子#1) :
通常情况下,预计用户
将使用适配器类之一
例如Zend_Config_Ini
or
Zend_Config_Xml
,但如果配置
数据以 PHP 数组形式提供,其中之一
可以简单地将数据传递给Zend_Config
构造函数以便
利用简单的面向对象
界面
你还应该看看例子#2 on 同一页 http://framework.zend.com/manual/en/zend.config.introduction.html (引用周围的内容) :
通常需要使用纯
基于 PHP 的配置文件。这
下面的代码说明了如何轻松地
这是可以实现的
基本上,您首先创建一个包含配置的 PHP 文件:
// config.php
return array(
...
...
);
然后,从另一个文件中使用配置文件:
$config = new Zend_Config(require 'config.php');
但请注意,这样做,您将失去轻松修改配置、将其写回到.ini
文件——根据您的情况,最终可能会(or not)成为一个问题。
可以使用的解决方案是缓存Zend_Config
data :
- 阅读它来自
.ini
file
- 将其存储到某种缓存机制中
- 并且,对于下一页,从缓存加载它,而不是重新解析
.ini
file.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)