李超

cc编程笔记本。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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"
posted on 2008-05-09 18:49  coderlee  阅读(1549)  评论(0编辑  收藏  举报