UIコンポーネントのデバッグ


16

管理者のグリッドとフォームにUIコンポーネントを使用するCRUDモジュールを構築しようとしています。
以前にこれをやったことがありますが、これは少し異なり、明らかに何かを台無しにしました。
問題は、UIコンポーネントファイルまたはUIコンポーネントファイルによって参照されるクラスにあることは確かです。レイアウトファイルからUIコンポーネントの参照を削除すると、ページがロードされます(明らかにグリッドはありません)。
UIコンポーネントを含めると、ページは空白になり、開発者モードであってもエラーはどこにも記録されません。

UIコンポーネントの読み込みとレンダリングのデバッグを開始する方法と場所


私は数日前に同じ問題を抱えていました。これは、ui_componentフォルダーの誤ったフォルダー構造が原因でした。そして、di.xmlで問題があった
Bhupendra Jadeja

今のところ、私は自分のエラーを気にしません。将来起こる可能性があるので、これをどのようにデバッグできるか気にしています。
マリウス

XMLのデバッグは非常に退屈な作業です。レポートとsystem.xmlでエラーが発生するたびに。コアチームから回答が得られることを願っています。
ブーペンドラジャデヤ

XMLをデバッグする方法はありましたか?
ブペンドラジャデヤ

1
アプリケーションで開始できるポイントを見つけましたが、それがそれを行うのに最適なポイントであるかどうかはまだわかりません。しっかりしたものが見つかったら、今日または明日に回答を投稿します。
マリウス

回答:


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つずつ項目を追加することです。


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デバッグの開始点になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.