Zend_Config是设计在应用程序中简化访问和使用配置数据的类,共有三个类,针对不同的配置文件类型而设计:

1 Zend_Config
这个类是的构造函数可以传入一个多维数组,使用方法如下:

首先是配置文件,是一个php文件,这个php文件只返回一个数组,供Zend_Config的构造函数使用

Zend Framework(四)Zend_Config<?php
Zend Framework(四)Zend_Config
// config.php
Zend Framework(四)Zend_Config
return array(
Zend Framework(四)Zend_Config    
'webhost'  => 'www.example.com',
Zend Framework(四)Zend_Config    
'database' => array(
Zend Framework(四)Zend_Config        
'adapter' => 'pdo_mysql',
Zend Framework(四)Zend_Config        
'params'  => array(
Zend Framework(四)Zend_Config            
'host'     => 'db.example.com',
Zend Framework(四)Zend_Config            
'username' => 'dbuser',
Zend Framework(四)Zend_Config            
'password' => 'secret',
Zend Framework(四)Zend_Config            
'dbname'   => 'mydatabase'
Zend Framework(四)Zend_Config        )
Zend Framework(四)Zend_Config    )
Zend Framework(四)Zend_Config);

如果想使用这个config.php配置文件,如下:

Zend Framework(四)Zend_Config<?php
Zend Framework(四)Zend_Config
// Configuration consumption
Zend Framework(四)Zend_Config
require_once 'Zend/Config.php';
Zend Framework(四)Zend_Config
$config = new Zend_Config(require 'config.php');
Zend Framework(四)Zend_Config
Zend Framework(四)Zend_Config
// Print a configuration datum (results in 'www.example.com')
Zend Framework(四)Zend_Config
echo $config->webhost;

可以看出 原来在php文件中return的值,会作为require函数的返回值。

2 Zend_Config_Ini

故名思义,这个类是解析INI文件的。

Zend Framework(四)Zend_Config; 生产站点配置数据
Zend Framework(四)Zend_Config
[production]
Zend Framework(四)Zend_Configwebhost                  
= www.example.com
Zend Framework(四)Zend_Configdatabase.adapter         
= pdo_mysql
Zend Framework(四)Zend_Configdatabase.params.host     
= db.example.com
Zend Framework(四)Zend_Configdatabase.params.username 
= dbuser
Zend Framework(四)Zend_Configdatabase.params.password 
= secret
Zend Framework(四)Zend_Configdatabase.params.dbname   
= dbname
Zend Framework(四)Zend_Config
Zend Framework(四)Zend_Config
; 开发站点配置数据从生产站点配置数据继承并如果需要可以重写
Zend Framework(四)Zend_Config
[staging : production]
Zend Framework(四)Zend_Configdatabase.params.host     
= dev.example.com
Zend Framework(四)Zend_Configdatabase.params.username 
= devuser
Zend Framework(四)Zend_Configdatabase.params.password 
= devsecret
Zend Framework(四)Zend_Config

然后是使用这个配置文件的代码:

Zend Framework(四)Zend_Config<?php
Zend Framework(四)Zend_Config
require_once 'Zend/Config/Ini.php';
Zend Framework(四)Zend_Config
Zend Framework(四)Zend_Config
$config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
Zend Framework(四)Zend_Config
Zend Framework(四)Zend_Config
echo $config->database->params->host;   // 输出 "dev.example.com"
Zend Framework(四)Zend_Config
echo $config->database->params->dbname; // 输出 "dbname"
Zend Framework(四)Zend_Config


3 Zend_Config_Xml

配置文件:

Zend Framework(四)Zend_Config<?xml version="1.0"?>
Zend Framework(四)Zend_Config
<configdata>
Zend Framework(四)Zend_Config    
<production>
Zend Framework(四)Zend_Config        
<webhost>www.example.com</webhost>
Zend Framework(四)Zend_Config        
<database>
Zend Framework(四)Zend_Config            
<adapter>pdo_mysql</adapter>
Zend Framework(四)Zend_Config            
<params>
Zend Framework(四)Zend_Config                
<host>db.example.com</host>
Zend Framework(四)Zend_Config                
<username>dbuser</username>
Zend Framework(四)Zend_Config                
<password>secret</password>
Zend Framework(四)Zend_Config                
<dbname>dbname</dbname>
Zend Framework(四)Zend_Config            
</params>            
Zend Framework(四)Zend_Config        
</database>
Zend Framework(四)Zend_Config    
</production>
Zend Framework(四)Zend_Config    
<staging extends="production">
Zend Framework(四)Zend_Config        
<database>
Zend Framework(四)Zend_Config            
<params>
Zend Framework(四)Zend_Config                
<host>dev.example.com</host>
Zend Framework(四)Zend_Config                
<username>devuser</username>
Zend Framework(四)Zend_Config                
<password>devsecret</password>
Zend Framework(四)Zend_Config            
</params>            
Zend Framework(四)Zend_Config        
</database>
Zend Framework(四)Zend_Config    
</staging>
Zend Framework(四)Zend_Config
</configdata>
Zend Framework(四)Zend_Config

使用方法:
Zend Framework(四)Zend_Config<?php
Zend Framework(四)Zend_Config
require_once 'Zend/Config/Xml.php';
Zend Framework(四)Zend_Config
Zend Framework(四)Zend_Config
$config = new Zend_Config_Xml('/path/to/config.xml', 'staging');
Zend Framework(四)Zend_Config
Zend Framework(四)Zend_Config
echo $config->database->params->host;   // 输出 "dev.example.com"
Zend Framework(四)Zend_Config
echo $config->database->params->dbname; // 输出 "dbname"
Zend Framework(四)Zend_Config

相关文章: