Das Beispiel in diesem Artikel beschreibt die Verwendung von Zend_Config_Xml im Zend Framework. Geben Sie es wie folgt als Referenz für alle frei:
Zend_Config_Xml ermöglicht Entwicklern, Konfigurationsdaten in einem einfachen XML-Format zu speichern und sie über die Syntax eingebetteter Objektattribute zu lesen.
Das Wurzelelement der XML-Datei ist irrelevant und kann beliebig benannt werden. XML-Elemente der obersten Ebene entsprechen Abschnitten von Konfigurationsdaten.
Das XML-Format unterstützt die hierarchische Organisation durch die Einbettung von XML-Elementen unterhalb von Elementen auf Abschnittsebene.
Die XML-Elemente auf Blattebene entsprechen den Werten der Konfigurationsdaten. Die Abschnittsvererbung wird durch ein spezielles XML-Attribut namens „Extens“ unterstützt, und der entsprechende Wert dieses Attributs wird durch den Erweiterungsabschnitt geerbt.
Rückgabetyp
In Zend_Config_Xml einlesen Konfigurationsdaten geben immer einen String zurück . Die Konvertierung von Daten aus Zeichenfolgen in andere Typen bleibt den Entwicklern überlassen, um sie an ihre spezifischen Anforderungen anzupassen.
Beispiel: Verwendung von Zend_Config_Xml
Dieses Beispiel veranschaulicht die grundlegende Verwendung von Zend_Config_Xml zum Laden von Konfigurationsdaten aus einer INI-Datei. In diesem Beispiel liegen Konfigurationsdaten für das Produktionssystem und das Stagingsystem vor. Da die Konfigurationsdaten des Entwicklungssystems den Konfigurationsdaten des Produktionssystems ähneln, erben die Abschnitte des Entwicklungssystems von den Abschnitten des Produktionssystems. In diesem Fall ist die Entscheidung willkürlich und kann auch umgekehrt getroffen werden, indem der Produktionssystemabschnitt vom Entwicklungssystemabschnitt erbt, obwohl dies bei komplexeren Fällen nicht möglich ist. Gehen Sie als Nächstes davon aus, dass die folgenden Konfigurationsdaten in /path/to/config.xml enthalten sind:
<?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>
Als nächstes gehen wir davon aus, dass der Entwickler sie abrufen muss die Konfigurationsdaten entwickeln. Das ist sehr einfach, geben Sie einfach die XML-Datei und den Entwicklungssystemabschnitt an, um die Daten zu laden:
$config = new Zend_Config_Xml('/path/to/config.xml', 'staging'); echo $config->database->params->host; // 输出 "dev.example.com" echo $config->database->params->dbname; // 输出 "dbname"
Beispiel: Verwendung des Tag-Attributs in Zend_Config_Xml
Zend_Config_Xml unterstützt auch zwei weitere Methoden zum Definieren von Knoten in der Konfigurationsdatei. Sie alle nutzen Eigenschaften. Da es sich bei den Attributen „extends“ und „value“ um reservierte Schlüsselwörter handelt (letzteres ist die zweite Möglichkeit, Attribute zu verwenden), dürfen sie nicht verwendet werden. Die erste Möglichkeit, Attribute zu verwenden, besteht darin, das Attribut dem übergeordneten Knoten hinzuzufügen, der selbst zu einem untergeordneten Knoten wird:
<?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>
Verkleinert die Konfigurationsdatei, vereinfacht aber die Wartung, da Sie den Tag-Namen schreiben müssen zweimal. Sie können ein leeres Tag erstellen, das seinen Wert im Wertattribut enthält:
Programmierung hilft. Weitere Artikel zum Zend Framework-Tutorial zur Zend_Config_Xml-Nutzungsanalyse finden Sie auf der chinesischen PHP-Website!<?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>