Kir*_*lla 5 php zend-framework
我不认为使用.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
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西......
<?php
$config = array(
'production' => array(
['phpSettings.display_startup_errors'] => 0,
['phpSettings.display_errors'] => 0,
),
);
Run Code Online (Sandbox Code Playgroud)
可能吗?我该怎么做以及如何告诉应用程序使用我自己的Config.php?
谢谢你,对不起我的英语.
UPD:我认为将数组传递给Zend_Application构造函数是正确的方法吗?
是的,您可以使用数组初始化Zend_Config
对象的数据; 看一下Zend Framework手册的这一页 (引用什么是arround 示例#1):
通常情况下,用户会使用其中一个适配器类,如
Zend_Config_Ini
或Zend_Config_Xml
,但如果配置数据在PHP数组中可用,则可以简单地将数据传递给Zend_Config
构造函数,以便利用简单的面向对象的接口
您还应该在同一页面上查看示例#2 (引用它的内容):
通常需要使用纯PHP的配置文件.以下代码说明了如何轻松完成此操作
基本上,您首先要创建一个包含配置的PHP文件:
// config.php
return array(
...
...
);
Run Code Online (Sandbox Code Playgroud)
然后,从另一个文件,使用比配置文件:
$config = new Zend_Config(require 'config.php');
Run Code Online (Sandbox Code Playgroud)
但请注意,这样做,您将失去轻松修改配置,将其写回.ini
文件的能力 - 根据您的情况,最终(或不)可能会成为问题.
可以使用的解决方案是缓存Zend_Config
数据:
.ini
文件中读取它.ini
文件.