Ich versuche, ein CRUD-Modul zu erstellen, das UI-Komponenten für das Administratorraster und das Formular verwendet.
Ich habe das schon mal gemacht und gearbeitet, aber das hier ist ein bisschen anders und anscheinend habe ich etwas vermasselt.
Das Problem liegt mit Sicherheit in der UI-Komponentendatei oder in einer Klasse, auf die die UI-Komponentendatei verweist. Wenn ich die UI-Komponentenreferenz aus der Layoutdatei entferne, wird die Seite geladen (ohne das Raster offensichtlich).
Beim Einbeziehen der UI-Komponente ist die Seite leer und es wird auch im Entwicklermodus nirgendwo ein Fehler protokolliert.
Wie / wo kann ich mit dem Debuggen des Ladens und Renderns der UI-Komponenten beginnen?
magento2
debugging
uicomponent
Marius
quelle
quelle
Antworten:
Bisher habe ich festgestellt, dass beim Rendern des Layouts dieser Stapel befolgt wird.
\Magento\Framework\View\Layout::generateElements
\Magento\Framework\View\Layout\GeneratorPool::process
Je nach Art des Layouts wird nun ein anderer Layoutgenerator aufgerufen
Für die Ui-Komponenten ... Fortsetzung des Stapels:
\Magento\Framework\View\Layout\Generator\UiComponent::process()
\Magento\Framework\View\Layout\Generator\UiComponent::generateComponent()
\Magento\Framework\View\Element\UiComponentFactory::create()
\Magento\Ui\Model\Manager::prepareData()
\Magento\Ui\Model\Manager::evaluateComponents()
Magento\Framework\Data\Argument\InterpreterInterface::evaluate
.Auch hier kommt es auf den zu interpretierenden Argumenttyp an.
Einige Dolmetscher finden Sie hier
lib/internal/Magento/Framework/Data/Argument/Interpreter/
Das ist so weit wie ich gekommen bin.
Ich weiß, es ist keine vollständige Erklärung, aber dies sind einige Punkte, an denen Sie feststellen können, ob etwas mit Ihrer UI-Komponente nicht stimmt.
quelle
Versuchen:
Methode:
protected function _toHtml()
ungefähr beginnend in Zeile 57
Debuggen Sie
$result
und es sollte alle Komponenten enthalten, die geladen werden.quelle
Die einzige Möglichkeit, um UI-Komponenten zu debuggen, besteht darin, alles aus der Komponente xml zu entfernen und nacheinander Elemente hinzuzufügen, um sicherzustellen, dass die Attribute in der xsd unterstützt werden.
quelle
Sie können mit css beginnen, um das Debuggen zu starten. Sie können die Datei theme.less unter app / design / frontend / Mgs / molly / web / css verwenden
Nachdem Sie den Code geändert haben, den Sie im var-Verzeichnis gelöscht haben, ist der Inhalt im Frontend-Verzeichnis von pub / static / frontend / gelöscht.
Zuletzt drücken Sie den Befehl im Setup von cmd php bin / magento: static-content: deploy
quelle
Ich würde anfangen mit:
Dies ist der Ort, an dem Ui XML zusammengeführt wird. Dies sollte also ein Ausgangspunkt für das Ui XML-Debugging sein.
quelle