调试ui组件


16

我正在尝试构建一个将UI组件用于管理网格和表单的CRUD模块。
我之前已经做过并且工作过,但是这个有点不同,显然我搞砸了。
问题出在UI组件文件或UI组件文件确定的某些类中。如果我从布局文件中删除UI组件引用,则页面加载(显然没有网格)。
包括UI组件时,页面为空白,并且即使在开发人员模式下,也没有错误记录在任何地方。

如何/在何处开始调试UI组件的加载和呈现?


前几天我遇到了同样的问题。这是由于ui_component文件夹的文件夹结构错误。然后在di.xml中有问题
Bhupendra Jadeja

目前,我不在乎我的错误。我关心如何调试它,因为将来可能会发生。
马吕斯

调试XML是非常繁琐的任务。每当我在报表和system.xml中出错时。希望我们得到核心团队的答复。
彭德拉·贾达贾

您有什么方法可以调试XML?
彭德拉·贾达贾

1
我在应用程序中找到了可以开始的地方,但是我不确定这不是最好的选择。如果我发现可靠的内容,我将在今天或明天发布答案。
马吕斯

Answers:


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文件有效。而且我敢肯定,除了删除文件的位以外,还有其他方法。必须有一个加载和处理文件的地方。
马吕斯

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
vnnogile_user

这与问题无关。我没有问过要改变颜色。
马吕斯

0

我将从以下内容开始:

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

这是将Ui XML放在一起的地方。因此,这应该是Ui XML调试的起点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.