Usiłuję zbudować moduł CRUD, który używa składników interfejsu użytkownika do siatki administracyjnej i formularza.
Zrobiłem to już wcześniej i pracowałem, ale ten jest nieco inny i najwyraźniej coś spieprzyłem.
Problem tkwi w pliku komponentu interfejsu użytkownika lub pewnej klasie, do której odwołuje się plik komponentu interfejsu użytkownika. Jeśli usunę odwołanie do komponentu interfejsu użytkownika z pliku układu, strona zostanie załadowana (bez siatki oczywiście).
Po dołączeniu komponentu interfejsu użytkownika strona jest pusta i nigdzie nie jest rejestrowany żaden błąd, nawet w trybie programisty.
Jak / gdzie mogę rozpocząć debugowanie ładowania i renderowania komponentów interfejsu użytkownika?
magento2
debugging
uicomponent
Marius
źródło
źródło
Odpowiedzi:
Do tej pory znalazłem, że podczas renderowania układu ten stos jest przestrzegany.
\Magento\Framework\View\Layout::generateElements
\Magento\Framework\View\Layout\GeneratorPool::process
Teraz, w zależności od typu układu, wywoływany jest inny generator układu
Dla elementów interfejsu użytkownika ... kontynuacja stosu:
\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
.Tutaj znowu zależy to od typu argumentu, który należy interpretować.
Tutaj znajdziesz tłumaczy
lib/internal/Magento/Framework/Data/Argument/Interpreter/
To jest tak daleko, jak to możliwe.
Wiem, że nie jest to pełne wyjaśnienie, ale są to niektóre punkty, w których możesz zidentyfikować, czy coś jest nie tak z komponentem interfejsu użytkownika.
źródło
Próbować:
metoda:
protected function _toHtml()
w przybliżeniu począwszy od linii 57
Debuguj
$result
i powinien zawierać wszystkie ładowane komponenty.źródło
Jedynym sposobem, w jaki udało mi się debugować komponenty interfejsu użytkownika, jest po prostu usunięcie wszystkiego ze składnika xml i dodanie elementów pojedynczo, upewniając się, że atrybuty są obsługiwane w xsd.
źródło
Możesz zacząć od użycia css do rozpoczęcia debugowania. Możesz użyć pliku theme.less w app / design / frontend / Mgs / molly / web / css np. Zmień kolor bazowy na @ base-color: @ 7c7bad
po zmianie dowolnego kodu usuwasz katalog var, masz czystą zawartość w katalogu frontend pub / static / frontend /
Ostatnie naciśnięcie polecenia w cmd php bin / magento setup: static-content: deploy
źródło
Zacząłbym od:
To jest miejsce, w którym Ui XML jest zbierane razem. Powinno to być punktem wyjścia do debugowania interfejsu użytkownika XML.
źródło