Config_Container::searchPath() -- Trouve un noeud avec un format similaire à XPATH
Description
Cette méthode essaye de trouver un article en
suivant un chemin donné à partir du conteneur courant.
Cette méthode ne peut être appelée que sur un objet de type
'section'. Notez que la racine est
une section. Cette méthode est récursive.
Cette méthode prend autant de paramètres que nécessaire pour
définir votre chemin jusqu'à l'article demandé. Le format est array
(item1, item2..., itemN). Les éléments peuvent être des chaînes ou
des tableaux. Les chaînes utiliseront pour la recherche le
nom de l'élément alors que les tableaux
le feront avec le 'nom' et/ou les
'attributs' de l'article demandé.
Paramètres
- mixed
$args
Les chaînes ou tableaux de l'item à chercher dans l'ordre où elle
devrons être cherchées, séparées par des virgules
Valeur retournée
mixed
- référence de l'élément trouvé ou FALSE, si aucun élément trouvé.
Note
Cette fonction ne peut pas être appelée de façon statique.
Exemple
Exemple 32-1. Exemple pour l'utilisation de searchPath() // Voici à quoi ressemble notre exemple de configuration XML :
// <config>
// <db>
// <user>root</user>
// <password>pass</user>
// <host>localhost</host>
// </db>
// </config>
$config = new Config();
$root =& $menuObj->parseConfig('db.xml', 'xml');
// Doit retourner la directive motDePAsse dans la db
$passObj =& $root->searchPath(tableau('config', 'db', 'password')); |
|
Exemple 32-2. Exemple plus complexe de l'utilisation de
searchPath() avec des attributs // Voici l'apparence de notre fichier de configuration 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');
// Will return the container in menu which 'id' is set to 'projects'
$section =& $root->searchPath(tableau('menu', tableau('group', tableau('id' => 'projects'))));
// To get a page we could also use
$page =& $root->searchPath(tableau('menu',
tableau('group', tableau('id' => 'projects')),
tableau('page', tableau('id' => 'project2')))); |
|