|
|
(Next) 設定の編集 |
||||
| |
|||||
|
|||||
Config を使用すると、XML ファイルや PHP の配列、 あるいはその他のデータソースに保存された設定項目を扱いやすくなります。 これらの機能がサポートされています。
さまざまな書式の設定項目のパース
セクション、ディレクティブ、コメント、空白などのお好みに応じた操作
お好みの書式による、データソースへの設定内容の書き出し
Config オブジェクトは、その他の Config_Container オブジェクトのコンテナとして働きます。 たいしたことをするわけではありませんが、入出力操作を簡単に行えるようになります。 ルート Config_Container オブジェクトがあり、 その配下に子 Config_Container オブジェクトが含まれるという形式になります。 Config_Container オブジェクトは、 自分の親への参照と、自分の子の配列を保持します。 この構造により、さまざまなコンテナの内容に容易にアクセスできるようになります。
Config_Container オブジェクトには、 さまざまな型があります。
セクション: これは、他の Config_Container オブジェクトを含むものです。
ディレクティブ: これは他のオブジェクトを含まず、その代わりに項目名とその内容を含むものです。キーと値のペアとなります。
コメント: 項目と似ていますが、コメントはその内容だけであり、名前は含まれません。選択した設定の型に応じて、コメントは特別な扱いを受けます。
ブランク: これは名前も値も持ちません。単に空行を指定したいときに使用します。
Config パッケージを使用する際は、 大半の作業は Config_Container オブジェクトに対して行います。
新しい Config_Container の作成
<?php
// Config_Container オブジェクトを初期化します
require_once('Config.php');
$conf =& new Config_Container('section', 'conf');
$conf_DB =& $conf->createSection('DB');
$conf_DB->createDirective('type', 'mysql');
$conf_DB->createDirective('host', 'localhost');
$conf_DB->createDirective('user', 'root');
$conf_DB->createDirective('pass', 'root');
// このコンテナを、Config のルートとして指定します
$config = new Config();
$config->setRoot($conf);
// コンテナを php の配列として書き出します
$config->writeConfig('/tmp/config_test.php', 'phparray',
array('name' => 'test'));
// 設定内容を画面に表示します
echo $conf->toString('phparray', array('name' => 'test'));
?>
上の例では、Config と Config_Container を組み合わせる方法を説明しています。 これ以外にも別の方法があります。 例えば、まず Config オブジェクトを作成して $config->getRoot() を使用し、返されたオブジェクトへの参照にセクションやディレクティブを追加するという方法です。
XML ファイルからの設定の読み込み
<?php
require_once 'Config.php';
$conf = new Config;
$root =& $conf->parseConfig('config.xml', 'XML');
if (PEAR::isError($root)) {
die('設定を読み込む際のエラー: ' . $root->getMessage());
}
$settings = $root->toArray();
printf('User settings: <a href="%s">%s %s</a>',
$settings['root']['conf']['www'],
$settings['root']['conf']['firstname'],
$settings['root']['conf']['lastname']
);
?>
この例で使用する XML ファイル config.xml は、このようになります。
<?xml version="1.0" encoding="UTF-8"?> <conf> <firstname>John</firstname> <lastname>Doe</lastname> <www>http://example.com/</www> </conf>
さらなる情報は、 API ドキュメント や パッケージのサンプル、そして パッケージのテスト を参照ください。また、DevShed では、Config パッケージのすばらしい チュートリアル が公開されています。
|
|
(Next) 設定の編集 |
||||||||
| |
|||||||||
|
|||||||||