Yaf_Config_Ini クラス

はじめに

Yaf_Config_Ini を使うと、設定データをおなじみの INI 形式で保存でき、アプリケーションからもオブジェクトのプロパティとして読めるようになります。 INI フォーマットを拡張して、設定データを階層構造で扱えるようにしたり 設定セクション間での継承を設定できるようにしたりしています。 設定データの階層は、キーをピリオド(".")で区切って表します。 セクションの継承を表すには、セクション名の後にコロン(":") を続け、その後に継承元のセクション名を指定します。

注意:

Yaf_Config_Ini は、PHP の関数 parse_ini_file() を利用します。 この関数のドキュメントも読んで、その振る舞いを知っておきましょう。 特殊な値、たとえば "true"、"false"、"yes"、"no"、そして "null" の扱いも、parse_ini_file() に従います。

クラス概要

Yaf_Config_Ini
class Yaf_Config_Ini extends Yaf_Config_Abstract implements Iterator, ArrayAccess, Countable {
/* プロパティ */
/* メソッド */
public __construct(string $config_file, string $section = ?)
public void count()
public void current()
public void __get(string $name = ?)
public void __isset(string $name)
public void key()
public void next()
public void offsetExists(string $name)
public void offsetGet(string $name)
public void offsetSet(string $name, string $value)
public void offsetUnset(string $name)
public void readonly()
public void rewind()
public void __set(string $name, mixed $value)
public array toArray()
public void valid()
/* 継承したメソッド */
abstract public mixed Yaf_Config_Abstract::get(string $name, mixed $value)
abstract public bool Yaf_Config_Abstract::readonly()
abstract public Yaf_Config_Abstract Yaf_Config_Abstract::set()
abstract public array Yaf_Config_Abstract::toArray()
}

プロパティ

_config

_readonly

例1 Yaf_Config_Ini の例

この例は、Yaf_Config_Ini で INI ファイルから設定データを読む方法を示すものです。 この例では、運用環境とステージング環境の設定データを用意しています。 ステージング環境の設定は運用環境とほぼ同じなので、 staging セクションは production セクションを継承しています。 今回の場合はどちらがどちらを継承してもあまり変わらないので 逆に production セクションが staging セクションを継承するようにもできます。 しかし、もっと複雑な設定になるとそうはいかないでしょう。 次のような設定データが /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
目次