我不认为在高流量项目中使用.ini或.xml文件不是一个好主意,因为每个页面加载都会导致解析config.ini或.xml文件。
有什么方法可以将.ini/.xml替换为常规php数组作为配置?
现在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
对象的数据;看一看this page of the Zend Framework manual(引用什么是示例#1 ):
您还应该看看the same page上的示例#2 (引用周围的内容):
基本上,您首先创建一个包含配置的PHP文件:
// config.php
return array(
...
...
);
然后,从另一个文件中使用配置文件:
$config = new Zend_Config(require 'config.php');
但是请注意,这样做会失去轻松修改配置并将其写回到
.ini
文件的能力-根据您的情况,最终可能会(或不会)出现问题。可以使用的解决方案是缓存
Zend_Config
数据:.ini
文件.ini
文件。 关于php - (Zend Framework> Zend_Config)如何避免使用.ini或.xml配置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2350917/