UI 구성 요소 디버깅


16

관리 표 및 양식에 UI 구성 요소를 사용하는 CRUD 모듈을 작성하려고합니다.
나는 이것을 전에하고 일했지만, 이것은 조금 다르며 분명히 무언가를 망쳤습니다.
문제는 UI 구성 요소 파일 또는 UI 구성 요소 파일이 참조하는 일부 클래스에 있습니다. 레이아웃 파일에서 UI 구성 요소 참조를 제거하면 그리드가없는 페이지가로드됩니다.
UI 구성 요소를 포함하면 페이지가 비어 있고 개발자 모드에서도 오류가 기록되지 않습니다.

UI 구성 요소의로드 및 렌더링 디버깅을 어떻게 / 어디에서 시작할 수 있습니까?


며칠 전에 같은 문제가있었습니다. ui_component 폴더의 폴더 구조가 잘못 되었기 때문입니다. 그런 다음 di.xml에 문제가있었습니다
Bhupendra Jadeja

현재로서는 내 오류에 신경 쓰지 않습니다. 나중에 발생할 수 있기 때문에 어떻게 디버깅 할 수 있는지 걱정합니다.
Marius

XML을 디버깅하는 것은 매우 지루한 작업입니다. 보고서와 system.xml에 오류가있을 때마다. 핵심 팀으로부터 답변을 받으시기 바랍니다.
Bhupendra Jadeja

XML을 디버깅하는 방법을 얻었습니까?
Bhupendra Jadeja

1
응용 프로그램에서 시작할 수있는 지점을 찾았지만 아직 확실하지는 않습니다. 확실한 정보를 찾으면 오늘 또는 내일 답변을 게시 할 것입니다.
Marius

답변:


12

지금까지 찾은 것은 레이아웃을 렌더링 할 때이 스택이 따르는 것입니다.

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

이제 레이아웃의 유형에 따라 다른 레이아웃 생성기가 호출됩니다.

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

Ui 구성 요소의 경우 ... 스택 계속 :

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

이것은 내가 가진 한입니다.
나는 그것이 완전한 설명이 아니라는 것을 알고 있지만, 이것은 UI 구성 요소에 문제가 있는지 식별 할 수있는 몇 가지 요점입니다.


1

시험:

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

방법: protected function _toHtml()

대략 57 행에서 시작

디버그 $result하고로드 된 모든 구성 요소를 포함해야합니다.


0

ui 구성 요소를 디버깅 할 수있는 유일한 방법은 구성 요소 xml에서 모든 것을 제거하고 한 번에 하나씩 항목을 추가하여 xsd에서 속성이 지원되는지 확인하는 것입니다.


1
파일은 xsd 파일에 유효합니다. 그리고 파일의 비트를 제거하는 것 외에 다른 방법이 있다고 확신합니다. 파일이로드되고 처리되는 장소가 있어야합니다.
Marius

0

디버깅을 시작하기 위해 CSS를 사용하여 시작할 수 있습니다 .app / design / frontend / Mgs / molly / web / css에서 theme.less 파일을 사용할 수 있습니다. 예 : @ base-color : 기본 색상 변경 : @ 7c7bad

var 디렉토리를 삭제 한 코드를 변경 한 후 pub / static / frontend /의 프론트 엔드 디렉토리 아래에 명확한 내용이 있습니다.

cmd php bin / magento setup : static-content : deploy의 마지막 적중 명령


CSS는 UI 구성 요소 디버깅과 어떤 관련이 있습니까?
Marius

레이아웃이나 색상을 변경할 수 있습니다. @Marius
vnnogile_user

이것은 질문과 관련이 없습니다. 나는 색상 변경에 대해 묻지 않았습니다.
Marius

0

나는 시작할 것이다 :

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

이것은 Ui XML이 결합 된 곳입니다. 이것이 Ui XML 디버그의 시작점이되어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.