回答:
エンティティとフィールドを操作するときは、オブジェクトではなく値を確認する必要があります。
エンティティには$entity->toArray()
、フィールドオブジェクトにはを使用します$field->getValue()
。これをほぼ1:1に変換して、オブジェクトのこれらの値にアクセスできます(例:$ entity-> field_name-> property)。
エンティティ参照フィールドの-> entityなどの計算されたプロパティなど、いくつかは表示されていません。全体的な概要については、https://wizzlern.nl/drupal/drupal-8-entity-cheat-sheetを参照してください。
とは言っても、デバッグ関数よりもIDE + xdebugを強くお勧めします。これは、上記のメソッドによって返された値の配列で正常に機能する、単純なdebug()だけを使用することもあります。
最初の問題は、Kintが深くなる配列/オブジェクトの最大レベルを変更することで一時的に修正できます。現在、これはまだモジュール内のコードの1行を変更することによって行う必要があります。これを構成可能な設定にするための問題https://www.drupal.org/node/2405179がすでにありますが。
devel/kint/kint/config.default.php
変更7
任意の番号にあなたは罰金です。通常はに設定し4
ます。
/** @var int max array/object levels to go deep, if zero no limits are applied */
$_kintSettings['maxLevels'] = 7;
この番号は、Develモジュールを更新するとすぐにリセットされることに注意してください。
更新:この美しいスニペットが単にsettings(.local).phpに配置されていることがわかりました。ハッキングやパッチは必要ありません。
// Change kint maxLevels setting:
include_once(DRUPAL_ROOT . '/modules/contrib/devel/kint/kint/Kint.class.php');
if (class_exists('Kint')) {
// Set the maxlevels to prevent out-of-memory.
Kint::$maxLevels = 4;
}
Develモジュールは優れたツールですが、すべての状況で機能するわけではありません。Twig XDebugと呼ばれる小枝をデバッグするためのモジュールが実際にあります(まだ実装していません)。
または
IDEでxdebugerを手動でインストールします。
自由に利用できるIDE:
ネットビーンズ
日食
Aptana Studio(Eclipse派生)
有料IDE:
phpDesigner
Jetbrains PHPStorm
Komodo IDE(無料/柔軟な価格設定シナリオがあります)。
IDEを選択した後に実行する次のステップ。
Xdebugをインストールする
php.ini設定を変更してxdebugを有効にします
IDEをインストールし、xdebugとブラウザーを使用するように構成します。
おそらく、xdebugのブラウザープラグイン。EX- ChromeのXdebugのヘルパー
マウスのクリックには注意してください+。アイコンをクリックしないでください。これにより、すべてのレベルが拡張され、時間がかかる場合があります。タイトルバーをクリックすると、最上位のみが展開されます。
{{ devel_breakpoint() }}
。ここを参照