Zend_Config_Xml
Zend_Config_Xml permet aux développeurs de stocker des données de
configuration dans un format simple XML et de les lire grâce à une syntaxe de propriétés
d'objets imbriquées. Le nom de l'élément racine du fichier XML n'a pas d'importance et peut
être nommé arbitrairement. Le premier niveau des éléments XML correspond aux sections des
données de configuration. Le format XML supporte l'organisation hiérarchique par
l'emboîtement des éléments XML à l'intérieur des éléments de niveau section. Le contenu
d'un élément XML de niveau le plus bas correspond aux données de configuration. L'héritage
des sections est supportée par un attribut spécial de XML nommé extends, et la
valeur de cet attribut correspond à la section de laquelle des données doivent être
héritées.
Type retourné
Les données de configuration lues grâce à Zend_Config_Xml sont
toujours des chaînes de caractères (string). La conversion des données à
partir des chaînes de caractères vers d'autres types de données est laissée aux
développeurs en fonction de leurs besoins.
Utiliser Zend_Config_Xml
Cet exemple illustre une utilisation de base de Zend_Config_Xml
pour le chargement des données de configuration à partir d'un fichier XML. Dans cet
exemple il y a des données de configuration pour un environnement de production et pour
un environnement de test. Puisque les données de configuration de l'environnement de
test sont très semblables à celles de la production, la section de test hérite de la
section de production. Dans ce cas, la décision est arbitraire et pourrait avoir été
écrite réciproquement, avec la section de production héritant de la section de test,
bien que ceci ne doit pas être le cas pour des situations plus complexes. Supposons,
que les données suivantes de configuration sont contenues dans
/chemin/vers/config.xml :
www.example.com
pdo_mysql
db.example.com
dbuser
secret
dbname
dev.example.com
devuser
devsecret
]]>
Ensuite, supposons que le développeur a besoin des données de configuration de
test issues du fichier XML. Il est facile de charger ces données en indiquant le
fichier XML et la section de test :
database->params->host; // affiche "dev.example.com"
echo $config->database->params->dbname; // affiche "dbname"
]]>
Utilisation des attributs de balise avec Zend_Config_Xml
Zend_Config_Xml supporte aussi 2 autres manières de définir des
noeuds dans la configuration. Celles-ci utilisent les attributs de balises. Puisque les
attributs extends et value sont des mots réservés (ce dernier
par la seconde manière d'utiliser les attributs), ils ne doivent pas être utilisés. La
première manière d'utiliser les attributs est de les ajouter au noeud parent, ils
seront ainsi interprétés en tant qu'enfant de ce noeud :
]]>
La seconde manière ne permet pas vraiment de raccourcir la configuration, mais la
rend plus facile à maintenir puisque vous n'avez pas à écrire les noms de balises deux
fois. Vous créez simplement une balise vide ayant sa valeur dans
value :
www.example.com
]]>
Chaînes de caractères XML
Zend_Config_Xml est capable de charger une chaîne de caractères
XML directement, par exemple si elle est issue d'une base de données. La chaîne est
fournie en tant que premier paramètre du constructeur et doit commencer par les
caractères '<?xml' :
EOT;
$config = new Zend_Config_Xml($string, 'staging');
]]>