Gemäß der Magento 2-Themenspezifikation zur Verarbeitung von Layoutdateien:
Die Magento-Anwendung verarbeitet Layoutdateien in der folgenden Reihenfolge:
1 / Sammelt alle Layoutdateien von Modulen. Die Reihenfolge richtet sich nach der Modulreihenfolge in der Modulliste aus app / etc / config.php.
2. / Bestimmt die Reihenfolge der geerbten Themen [, ...,]
3. / Durchläuft die Reihenfolge der Themen vom letzten Vorfahren bis zum aktuellen:
ein. Fügt der Liste alle erweiterten Designlayoutdateien hinzu.
b. Ersetzt überschriebene Layoutdateien in der Liste.
4. / Führt alle Layoutdateien aus der Liste zusammen.
Wie kann ich die Layoutdatei für jeden Schritt dieses Prozesses debuggen und anzeigen?
magento2
layout
magento-2.0
debugging
thienphucvx
quelle
quelle
Antworten:
Schließlich kann ich alle geladenen XML-Layouts drucken und wissen, wie Magento 2-Layout funktioniert. Es hilft uns auch zu überprüfen, ob unser benutzerdefiniertes Modullayout geladen ist oder nicht. Die Idee ist:
Wir hören uns ein Ereignis " layout_generate_blocks_after " an und holen uns den gesamten geladenen Baum von diesem Punkt.
Speichern Sie den gesamten geladenen Baum in einer XML-Datei.
1 / Wir erstellen ein neues Verzeichnis
Sample/Dev
. Erstellen SieSample/Dev/registration.php
, um mit Magento 2 über unser Modulverzeichnis zu deklarieren.2 / Erstellen
Sample/Dev/etc/module.xml
: Damit Magento 2 über die Setup-Version unseres Moduls informiert wird3 / Erstellen
Sample/Dev/etc/frontend/events.xml
. In dieser Datei hören wir uns das Ereignis "layout_generate_blocks_after" an.4 / Erstellen Sie
Sample/Dev/Model/Layout.php
mit dem Inhalt wie unten5 / Neues Modul einrichten. In Ihrem Home-Website-Verzeichnis. CMD Kommandozeile eingeben:
- PHP Bin / Magento-Modul: Aktivieren Sie Sample_Dev
- php bin / magento setup: upgrade
6 / Aktualisieren Sie die Seite, auf der die XML-Datei angezeigt werden soll (z. B. Ihre Homepage), und checken Sie die XML-Handle-Datei ein
var/log/layout_block.xml
.quelle