(Yaf >=1.0.0)
はじめに
Yaf_Config_Ini を使うと、設定データをおなじみの INI 形式で保存でき、アプリケーションからもオブジェクトのプロパティとして読めるようになります。 INI フォーマットを拡張して、設定データを階層構造で扱えるようにしたり 設定セクション間での継承を設定できるようにしたりしています。 設定データの階層は、キーをピリオド(".")で区切って表します。 セクションの継承を表すには、セクション名の後にコロン(":") を続け、その後に継承元のセクション名を指定します。
注意:
Yaf_Config_Ini は、PHP の関数 parse_ini_file() を利用します。 この関数のドキュメントも読んで、その振る舞いを知っておきましょう。 特殊な値、たとえば "
true
"、"false
"、"yes"、"no"、そして "null
" の扱いも、parse_ini_file() に従います。
クラス概要
Yaf_Config_Ini extends Yaf_Config_Abstract implements Iterator , ArrayAccess , Countable {
/* メソッド */
public __construct
( string $config_file
[, string $section
] )
public count ( ) : void
public current ( ) : void
public __get
([ string $name
] ) : void
public __isset
( string $name
) : void
public key ( ) : void
public next ( ) : void
public offsetExists
( string $name
) : void
public offsetGet
( string $name
) : void
public offsetSet
( string $name
, string $value
) : void
public offsetUnset
( string $name
) : void
public readonly ( ) : void
public rewind ( ) : void
public toArray ( ) : array
public valid ( ) : void
/* 継承したメソッド */
abstract public Yaf_Config_Abstract::get
( string $name
, mixed $value
) : mixed
abstract public Yaf_Config_Abstract::readonly ( ) : bool
abstract public Yaf_Config_Abstract::set ( ) : Yaf_Config_Abstract
abstract public Yaf_Config_Abstract::toArray ( ) : array
}
プロパティ
_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
目次
- Yaf_Config_Ini::__construct — Yaf_Config_Ini のコンストラクタ
- Yaf_Config_Ini::count — Yaf_Config.ini の全ての要素を数える
- Yaf_Config_Ini::current — 現在の値を取得する
- Yaf_Config_Ini::__get — 要素を取得する
- Yaf_Config_Ini::__isset — キーが存在するかを判定する
- Yaf_Config_Ini::key — 現在の要素のキーを取得する
- Yaf_Config_Ini::next — 内部ポインタを進める
- Yaf_Config_Ini::offsetExists — The offsetExists purpose
- Yaf_Config_Ini::offsetGet — The offsetGet purpose
- Yaf_Config_Ini::offsetSet — The offsetSet purpose
- Yaf_Config_Ini::offsetUnset — The offsetUnset purpose
- Yaf_Config_Ini::readonly — The readonly purpose
- Yaf_Config_Ini::rewind — The rewind purpose
- Yaf_Config_Ini::__set — The __set purpose
- Yaf_Config_Ini::toArray — PHP の配列として構成を返す
- Yaf_Config_Ini::valid — The valid purpose
/* プロパティ */