Magento fügt alle XML-Konfigurationsdateien aus den Verzeichnissen app/etc, app/etc/modules und config.xml aus den etc-Verzeichnissen einzelner Module zu einem einzigen XML-Baum zusammen. Um Magento besser zu verstehen und bei der Entwicklung eigener Module kann es hilfreich sein, einen Einblick in diesen Magento-Konfigurationsbaum zu bekommen.
getXmlString() als Methode von getConfig() gibt eine speichersparende Ausgabe ohne Einschübe und Zeilenumbrüche. Sie ist für Entwicklungsumgebungen geeignet, die XML visualisieren können (z. B. in Eclipse: Strg+O in der Code-Ansicht oder die Design-Ansicht):
$configXML = Mage::app()->getConfig()->getXmlString();
asNiceXml() gibt geordneten XML-Code mit Zeilenumbrüchen und hierarchischen Einschüben aus:
$configXML = Mage::getConfig()->getNode()->asNiceXml();
Wenn der XML-Konfigurationsbaum auf einen bestimmten XPath reduziert werden soll, kann dieser als String-Parameter von getNode() übergeben werden. Der nachfolgende Beispiel listet alle registrierten Helper auf:
$configXML = Mage::getConfig()->getNode('global/helpers')->asNiceXml();
Die Umfangreiche Ausgabe kann in einer Datei gespeichert werden. Der nachfolgende Code speichert die XML-Ausgabe im Log-Verzeichnis von Magento:
file_put_contents(Mage::getBaseDir('log').DS.'magento_config.xml', $configXML);
Hauptknoten des Magento-Konfigurationsbaums
- config
- modules – Modulkonfiguration (codePool, active, depends)
- global – Definitionen, die global gelten (models, resources, blocks, helpers, events, fieldsets, template, cache…)
- frontend – Definitionen, die nur im Frontend gelten (events, secure_url, routers, translate, layout)
- adminhtml – Definitionen, die nur im Backend gelten (events, global_search, translate, layout)
- default – Konfiguration für alle Store Views, Voreinstellungen
- stores – Konfiguration für die Store Views (default, admin, [store_code])
- websites – Konfiguration für die Websites
- admin – Backend-Router und Fieldsets (routers, fieldsets, attributes)
- install – Magento-Installation (nicht Modul-Installation)
- crontab – Cronjobs innerhalb des Magento-Systems
- varien – Altlasten von Varien
- phoenix – Spezielle Definitionen für MoneyBookers
- [custom] – Spezielle Definitionen für eigene Module möglich