L'exemple de cet article décrit l'utilisation de Zend_Config_Xml dans Zend Framework. Partagez-le avec tout le monde pour référence, comme suit :
Zend_Config_Xml permet aux développeurs de stocker les données de configuration dans un format XML simple et de les lire via la syntaxe des attributs d'objet intégrés.
L'élément racine du fichier XML n'a pas d'importance et peut être nommé arbitrairement. Les éléments XML de niveau supérieur correspondent à des sections de données de configuration.
Le format XML prend en charge l'organisation hiérarchique en incorporant des éléments XML sous les éléments au niveau de la section.
Les éléments XML au niveau feuille correspondent aux valeurs des données de configuration. L'héritage de section est pris en charge via un attribut XML spécial appelé extends, et la valeur correspondante de cet attribut est héritée via la section d'extension
Type de retour
Lire dans Zend_Config_Xml Les données de configuration renvoient toujours une chaîne. . La conversion des données des chaînes vers d'autres types est laissée aux développeurs pour s'adapter à leurs besoins spécifiques.
Exemple : Utilisation de Zend_Config_Xml
Cet exemple illustre l'utilisation de base de Zend_Config_Xml pour charger des données de configuration à partir d'un fichier INI. Dans cet exemple, il existe des données de configuration pour le système de production et le système intermédiaire. Étant donné que les données de configuration du système de développement sont similaires aux données de configuration du système de production, les sections du système de développement héritent des sections du système de production. Dans ce cas, la décision est arbitraire et elle peut être prise dans l’autre sens, la partie système de production héritant de la partie système de développement, bien que cela ne soit pas possible pour des cas plus complexes. Supposons ensuite que les données de configuration suivantes soient contenues dans /path/to/config.xml :
<?xml version="1.0"?> <configdata> <production> <webhost>www.example.com</webhost> <database> <adapter>pdo_mysql</adapter> <params> <host>db.example.com</host> <username>dbuser</username> <password>secret</password> <dbname>dbname</dbname> </params> </database> </production> <staging extends="production"> <database> <params> <host>dev.example.com</host> <username>devuser</username> <password>devsecret</password> </params> </database> </staging> </configdata>
Ensuite, supposons que le développeur doive récupérer les données de configuration de développement. C'est très simple, il suffit de spécifier le fichier XML et la section du système de développement pour charger les données :
$config = new Zend_Config_Xml('/path/to/config.xml', 'staging'); echo $config->database->params->host; // 输出 "dev.example.com" echo $config->database->params->dbname; // 输出 "dbname"
Exemple : Utilisation de l'attribut tag dans Zend_Config_Xml
Zend_Config_Xml supporte également deux autres méthodes pour définir des nœuds dans le fichier de configuration. Ils utilisent tous des propriétés. Étant donné que les attributs extends et value sont des mots-clés réservés (ce dernier est la deuxième façon d'utiliser les attributs), ils ne peuvent pas être utilisés. La première façon d'utiliser les attributs est d'ajouter l'attribut au nœud parent, qui devient lui-même un nœud enfant :
<?xml version="1.0"?> <configdata> <production webhost="www.example.com"> <database adapter="pdo_mysql"> <params host="db.example.com" username="dbuser" password="secret" dbname="dbname"/> </database> </production> <staging extends="production"> <database> <params host="dev.example.com" username="devuser" password="devsecret"/> </database> </staging> </configdata>
Rend le fichier de configuration plus petit, mais facilite la maintenance puisque vous devez écrire le nom de la balise deux fois. Vous pouvez créer une balise vide qui contient sa valeur dans l'attribut value :
La programmation aide. Pour plus d'articles liés à l'analyse de l'utilisation du tutoriel Zend Framework Zend_Config_Xml, veuillez faire attention au site Web PHP chinois !<?xml version="1.0"?> <configdata> <production> <webhost>www.example.com</webhost> <database> <adapter value="pdo_mysql"/> <params> <host value="db.example.com"/> <username value="dbuser"/> <password value="secret"/> <dbname value="dbname"/> </params> </database> </production> <staging extends="production"> <database> <params> <host value="dev.example.com"/> <username value="devuser"/> <password value="devsecret"/> </params> </database> </staging> </configdata>