(Yaf >=1.0.0)
Yaf_Config_Ini允許開發(fā)者通過(guò)嵌套的對(duì)象屬性語(yǔ)法在應(yīng)用程序中用熟悉的INI格式存儲(chǔ)和讀取配置數(shù)據(jù)。 INI格式在提供擁有配置數(shù)據(jù)鍵的等級(jí)結(jié)構(gòu)和配置數(shù)據(jù)節(jié)之間的繼承能力方面具有專長(zhǎng)。 配置數(shù)據(jù)等級(jí)結(jié)構(gòu)通過(guò)用點(diǎn)或者句號(hào)(.)分離鍵值。 一個(gè)節(jié)可以擴(kuò)展或者通過(guò)在節(jié)的名稱之后帶一個(gè)冒號(hào)(:)和被繼承的配置數(shù)據(jù)的節(jié)的名稱來(lái)從另一個(gè)節(jié)繼承。
注意:
Yaf_Config_Ini利用PHP的函數(shù)parse_ini_file()來(lái)解析配置文件的。 請(qǐng)仔細(xì)查看這個(gè)函數(shù)的文檔,注意它的一些特殊用途。以及它傳遞給Yaf_Config_Ini的一些比如 "TRUE", "FALSE","yes", "no", 和"NULL"的特殊值的處理方式
示例 #1 Yaf_Config_Ini()example
這個(gè)例子說(shuō)明了使用Yaf_Config_Ini從一個(gè)INI配置文件中獲取配置數(shù)據(jù)的基本用法。 這個(gè)例子中既有生產(chǎn)環(huán)境的配置方法也有演示環(huán)境的配置方法。 因?yàn)檠菔经h(huán)境的配置跟生產(chǎn)環(huán)境的非常類似,所以演示環(huán)境的配置繼承了生產(chǎn)環(huán)境的配置。 在復(fù)雜的情況下,決定是任意的,也可以寫成相反的。在更復(fù)雜的情況下,生產(chǎn)環(huán)境繼承自演示環(huán)境不是不可能的。 假設(shè),以下配置數(shù)據(jù)都包含在/path/to/config.ini中:
; Production site configuration data [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 site configuration data inherits from production and ; overrides values as necessary [staging : production] database.params.host = dev.example.com database.params.username = devuser database.params.password = devsecret
<?php
$config = new Yaf_Config_Ini('/path/to/config.ini', 'staging');
var_dump($config->database->params->host);
var_dump($config->database->params->dbname);
var_dump($config->get("database.params.username"));
?>
以上例程的輸出類似于:
string(15) "dev.example.com" string(6) "dbname" string(7) "devuser