Zend Framework(四)Zend_Config

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"

你可能感兴趣的:(framework)