Налагодження компонентів інтерфейсу


16

Я намагаюся створити модуль CRUD, який використовує компоненти інтерфейсу для адміністративної сітки та форми.
Я робив це раніше і працював, але цей трохи інший і, мабуть, я щось накрутив.
Проблема полягає у файлі компонента інтерфейсу користувача або в якомусь класі, на який посилається компонентний файл UI. Якщо я видаляю посилання компонента інтерфейсу з файлу макета, сторінка завантажується (без сітки, очевидно).
Якщо включити компонент інтерфейсу користувача, сторінка порожня, і помилка ніде не зафіксована, навіть у режимі розробника.

Як / з чого я можу почати налагодження завантаження та візуалізації компонентів інтерфейсу?


Я мав таку ж проблему, як кілька днів тому. Це було пов’язано з неправильною структурою папок папки ui_component. Потім був випуск у di.xml
Bhupendra Jadeja

На даний момент мене не хвилює моя помилка. Мене хвилює те, як я можу налагодити це, оскільки це може статися в майбутньому.
Маріус

Налагодження XML - це дуже копітка задача. Кожен раз, коли я отримував помилку у звіті та system.xml. Сподіваємось, ми отримаємо відповідь від основної команди.
Bhupendra Jadeja

Ви отримали який-небудь спосіб налагодження XML?
Bhupendra Jadeja

1
Я знайшов точку в програмі, з якої я можу почати, але я ще не впевнений, що це не найкращий момент для цього. Я відправлю відповідь сьогодні чи завтра, якщо знайду щось тверде.
Маріус

Відповіді:


12

Я знайшов поки що, коли візуалізація макета дотримується цього стека.

  • \Magento\Framework\View\Layout::generateElements
  • \Magento\Framework\View\Layout\GeneratorPool::process

Тепер, залежно від типу компонування, викликається інший генератор макетів

foreach ($this->generators as $generator) {
    $generator->process($readerContext, $generatorContext);
}

Для компонентів інтерфейсу ... продовження стека:

  • \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.

Тут знову це залежить від типу аргументу, який потрібно інтерпретувати.
Тут ви можете знайти деякі перекладачіlib/internal/Magento/Framework/Data/Argument/Interpreter/

Це наскільки я отримав.
Я знаю, що це не повне пояснення, але це деякі моменти, за якими можна визначити, чи щось не так з вашим компонентом інтерфейсу.


1

Спробуйте:

Source/vendor/magento/module-ui/Component/Wrapper/UiComponent.php

метод: protected function _toHtml()

приблизно починаючи з рядка 57

Відлагоджувати $result і він повинен містити всі завантажені компоненти.


0

Єдиний спосіб, коли мені вдалося налагодити компоненти ui - це просто видалити все з компонента xml та додавати елементи по одному, переконуючись, що атрибути підтримуються в xsd.


1
файл дійсний у відношенні файлу xsd. І я впевнений, що існує інший спосіб, крім видалення бітів файлу. Має бути місце, де файл завантажується та обробляється.
Маріус

0

Ви можете почати з використання css для запуску налагодження. Ви можете використовувати файл theme.less у програмі / design / frontend / Mgs / molly / web / css, наприклад змінити базовий колір, який є @ базовим кольором: @ 7c7bad

Після зміни будь-якого коду ви видалите каталог var, ви маєте чіткий вміст у каталозі frontend pub / static / frontend /

Останнє звернення в команді cmd php bin / magento setup: статичний контент: розгорнути


Що css має відношення до налагодження компонентів інтерфейсу?
Маріус

Ви можете змінити макет або колір його. @Marius
vnnogile_user

Це не має нічого спільного з питанням. Я не питав про зміну кольорів.
Маріус

0

Я б почав із:

Magento\Ui\TemplateEngine\Xhtml\Result->__toString( )

Це місце, де Ui XML об'єднується. Таким чином, це має бути відправною точкою для налагодження Ui XML.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.