Yaf_Config_Ini クラス

(Yaf >=1.0.0)

はじめに

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

注意:

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

クラス概要

classYaf_Config_IniextendsYaf_Config_AbstractimplementsIterator, ArrayAccess, Countable {
public__construct(string$config_file, string$section = ?)
publiccount(): void
publiccurrent(): void
public__get(string$name = ?): void
public__isset(string$name): void
publickey(): void
publicnext(): void
publicoffsetExists(string$name): void
publicoffsetGet(string$name): void
publicoffsetSet(string$name, string$value): void
publicoffsetUnset(string$name): void
publicreadonly(): void
publicrewind(): void
public__set(string$name, mixed$value): void
publictoArray(): array
publicvalid(): void
abstractpublicYaf_Config_Abstract::get(string$name, mixed$value): mixed
}

プロパティ

_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 

目次

To Top