Estou tentando criar um módulo CRUD que usa componentes de interface do usuário para a grade e o formulário do administrador.
Eu fiz isso antes e trabalhei, mas este é um pouco diferente e, aparentemente, eu estraguei algo.
O problema está no arquivo de componente da interface do usuário ou em alguma classe referenciada pelo arquivo de componente da interface do usuário, com certeza. Se eu remover a referência do componente da interface do usuário do arquivo de layout, a página será carregada (sem a grade obviamente).
Ao incluir o componente de interface do usuário, a página fica em branco e não há erro registrado em qualquer lugar, mesmo no modo de desenvolvedor.
Como / onde posso começar a depurar o carregamento e a renderização dos componentes da interface do usuário?
fonte
Respostas:
O que descobri até agora é que, ao renderizar o layout, essa pilha é seguida.
\Magento\Framework\View\Layout::generateElements
\Magento\Framework\View\Layout\GeneratorPool::process
Agora, dependendo do tipo de layout, um gerador de layout diferente é chamado em
Para os componentes da interface do usuário ... continuando a pilha:
\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
.Aqui, novamente, depende do tipo de argumento que precisa ser interpretado.
Você pode encontrar alguns intérpretes aqui
lib/internal/Magento/Framework/Data/Argument/Interpreter/
Isto é tanto quanto eu cheguei.
Eu sei que não é uma explicação completa, mas esses são alguns pontos em que você pode identificar se algo está errado com seu componente de interface do usuário.
fonte
Experimentar:
método:
protected function _toHtml()
aproximadamente começando na linha 57
Depure
$result
e deve conter todos os componentes carregados.fonte
A única maneira de depurar os componentes da interface do usuário é apenas remover tudo do xml do componente e adicionar itens um por vez, certificando-se de que os atributos sejam suportados no xsd.
fonte
Você pode começar usando o css para iniciar a depuração. Você pode usar o arquivo theme.less em app / design / frontend / Mgs / molly / web / css, por exemplo, alterar a cor base, que é @ base-color: @ 7c7bad
depois de alterar qualquer código que você exclua o diretório var, você terá um conteúdo limpo no diretório frontend de pub / static / frontend /
No último comando hit na configuração do cmd php bin / magento: static-content: deploy
fonte
Eu começaria com:
Este é o local onde o XML da interface do usuário é reunido. Portanto, este deve ser um ponto de partida para a depuração de XML da interface do usuário.
fonte