Magento-Konfiguration als XML-Baum anzeigen, debuggen, analysieren

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.