Zend_Config是设计在应用程序中简化访问和使用配置数据的类,共有三个类,针对不同的配置文件类型而设计:
1 Zend_Config
这个类是的构造函数可以传入一个多维数组,使用方法如下:
首先是配置文件,是一个php文件,这个php文件只返回一个数组,供Zend_Config的构造函数使用
<?php
// config.php
return array(
'webhost' => 'www.example.com',
'database' => array(
'adapter' => 'pdo_mysql',
'params' => array(
'host' => 'db.example.com',
'username' => 'dbuser',
'password' => 'secret',
'dbname' => 'mydatabase'
)
)
);如果想使用这个config.php配置文件,如下:
<?php
// Configuration consumption
require_once 'Zend/Config.php';
$config = new Zend_Config(require 'config.php');
// Print a configuration datum (results in 'www.example.com')
echo $config->webhost;可以看出 原来在php文件中return的值,会作为require函数的返回值。
2 Zend_Config_Ini
故名思义,这个类是解析INI文件的。
; 生产站点配置数据
[production]
webhost = www.example.com
database.adapter = pdo_mysql
database.params.host = db.example.com
database.params.username = dbuser
database.params.password = secret
database.params.dbname = dbname
; 开发站点配置数据从生产站点配置数据继承并如果需要可以重写
[staging : production]
database.params.host = dev.example.com
database.params.username = devuser
database.params.password = devsecret
然后是使用这个配置文件的代码:
<?php
require_once 'Zend/Config/Ini.php';
$config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
echo $config->database->params->host; // 输出 "dev.example.com"
echo $config->database->params->dbname; // 输出 "dbname"
3 Zend_Config_Xml
配置文件:
<?xml version="1.0"?>
<configdata>
<production>
<webhost>www.example.com</webhost>
<database>
<adapter>pdo_mysql</adapter>
<params>
<host>db.example.com</host>
<username>dbuser</username>
<password>secret</password>
<dbname>dbname</dbname>
</params>
</database>
</production>
<staging extends="production">
<database>
<params>
<host>dev.example.com</host>
<username>devuser</username>
<password>devsecret</password>
</params>
</database>
</staging>
</configdata>
使用方法:
<?php
require_once 'Zend/Config/Xml.php';
$config = new Zend_Config_Xml('/path/to/config.xml', 'staging');
echo $config->database->params->host; // 输出 "dev.example.com"
echo $config->database->params->dbname; // 输出 "dbname"

浙公网安备 33010602011771号