Config_Container::searchPath() -- XPATH 風のフォーマットを使用してノードを探す
説明
このメソッドは、与えられたパスを使用して
現在のコンテナから項目を探します。
このメソッドは、型が 'section'
であるオブジェクトに対してのみコール可能です。
ルートはセクション型であることに注意しましょう。
このメソッドは再帰的に働きます。
このメソッドは、必要な数のパラメータによって定義されるパスから項目を探します。
その書式は array (item1, item2, ..., itemN) となります。
配列の要素には文字列か配列が指定できます。文字列は項目の
name として扱われ、
配列の場合は項目の 'name'
や 'attributes' の値として扱われます。
パラメータ
- mixed
$args
一致する項目を探す対象となる文字列あるいは配列。カンマ区切りで指定します。
返り値
見つかった項目への参照、あるいは見つからなかった場合に FALSE を返します。
注意
この関数は、スタティックにコールする
ことはできません。
例
例 37-1searchPath() の使用例 // 次のような XML 設定ファイルがあるとします
// <config>
// <db>
// <user>root</user>
// <password>pass</user>
// <host>localhost</host>
// </db>
// </config>
$config = new Config();
$root =& $menuObj->parseConfig('db.xml', 'xml');
// これは、db セクションの password ディレクティブを返します
$passObj =& $root->searchPath(array('config', 'db', 'password')); |
|
例 37-2属性を使用した、searchPath() のより複雑な例 // 次のような XML 設定ファイルがあるとします
// <menu>
// <group id="company">
// <page id="news"/>
// <page id="jobs"/>
// </group>
// <group id="projects">
// <page id="project1"/>
// <page id="project2"/>
// </group>
// </menu>
$menuObj = new Config();
$root =& $menuObj->parseConfig('menu.xml', 'xml');
// これは、メニュー内のコンテナで 'id' が 'projects' であるものを返します
$section =& $root->searchPath(array('menu', array('group', array('id' => 'projects'))));
// ページを取得するためにはこのようにもできます
$page =& $root->searchPath(array('menu',
array('group', array('id' => 'projects')),
array('page', array('id' => 'project2')))); |
|