Php/docs/class.yaf-config-ini

提供:Dev Guides
< Php
移動先:案内検索

(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 __set ( string $name , mixed $value ) : 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::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

目次