@flowithwind
var_dump($config -> toArray()[ 'type' ][ 18 ][ 'text' ]);
字串 'abc' (長度=3)
(Yaf >=1.0.0)
Yaf_Config_Ini 讓開發者能夠以熟悉的 INI 格式儲存設定資料,並在應用程式中使用巢狀物件屬性語法讀取這些資料。INI 格式經過特殊設計,既能提供設定資料鍵的階層結構,又能提供設定資料區段之間的繼承關係。設定資料階層結構是透過使用點或句點字元(".")分隔鍵來實現的。一個區段可以透過在區段名稱後面加上冒號(":")和要繼承資料的區段名稱來擴充或繼承另一個區段。
注意:
Yaf_Config_Ini 使用了 » parse_ini_file() PHP 函式。請仔細閱讀此函式的文件,以了解其特定行為,這些行為會傳播到 Yaf_Config_Ini,例如如何處理特殊值 "
true
"、"false
"、"yes"、"no" 以及 "null
"。
範例 #1 Yaf_Config_Ini() 範例
此範例說明了 Yaf_Config_Ini 從 INI 檔案載入配置資料的基本用法。在此範例中,同時存在生產系統和測試系統的配置資料。由於測試系統的配置資料與生產系統的配置資料非常相似,因此測試區段繼承自生產區段。在這種情況下,決定是任意的,也可以反過來寫,讓生產區段繼承自測試區段,但在更複雜的情況下可能並非如此。那麼,假設 /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
@flowithwind
var_dump($config -> toArray()[ 'type' ][ 18 ][ 'text' ]);
字串 'abc' (長度=3)
當我使用 Yaf_Config_ini 搭配以下幾行時
type.18.text=abc
type.8.text=ddf
type.0.text=fjdsklf
您可以透過這種方式
$$configArr = $config->toArray();
var_dump($configArr['type'][18]['text']);
結果
abc
/conf/db.ini
[product]
database.params.host = localhost
database.params.port = 5432
database.params.dbname = postgres
database.params.username = 'postgres'
database.params.password = 123456
<?php
$config = new Yaf_Config_ini('../conf/db.ini','product');
$config = $config->toArray();
$host = $config['database']['params']['host'];
$port = $config['database']['params']['port'];
$database = $config['database']['params']['dbname'];
$username = $config['database']['params']['username'];
$password = $config['database']['params']['password'];
$pg_conn = pg_connect("host='$host' port='$port' dbname='$database' user='$username' password='$password' ");
?>