Drupalのデバッグ(変数のダンプ)をChromeのコンソールに出力する
今回はDrupalのデバッグについてご紹介したいと思います。
みなさんが普段Drupalでデバッグを行う際、よく devel モジュールを利用するかと思います。
Develでよく利用するメソッドとして dd()
がありますが、これは /tmp/drupal_debug.txt
にダンプを出力するメソッドです。
このメソッドはログがずっと残るので後から見返す分には良いのですが、ログが蓄積されていく為、不要な情報が残り都度クリアする必要がある等 手間がかかる場合があります。
そこで、今回は dcp()
というメソッドを利用しChromeのコンソールにダンプを出力する方法をご紹介します。
事前準備
Chromeに出力するにあたりchrome-extensionやPHPのライブラリが必要となる為、導入を行います
chrome-extension のインストール
Chrome Logger をChromeに追加
Develモジュール 及び chromephp ライブラリのインストール
# Develモジュールの導入
composer require --dev drupal/devel
# chromephp ライブラリの導入
composer require --dev ccampbell/chromephp
使い方
モジュール内にデバッグ文を仕込む
例として hook_form_alter()
に $form_id
をダンプするロジックを定義
<?php
use Drupal\Core\Form\FormStateInterface;
/**
* Implements hook_form_alter().
*/
function sample_form_alter(&$form, FormStateInterface $form_state, $form_id) {
// Chrome コンソールにダンプ.
dcp($form_id);
}
Chromeでの確認
Chrome loggerを有効化
を有効化します
Chrome コンソールで確認
モジュールが実行されるページをChromeで読み込み、ダンプが出力されていることを確認
このようにChromeへダンプを出力することによって、1つの画面でデバッグ可能なこと及び
ログが必要以上に蓄積せず、自分が確認したいことのみが出力されていくので便利かと思います。
良ければご活用ください。
募集しています
スタジオ・ウミは「Drupal」に特化したサービスを提供する Drupal のエキスパートチーム。
フルリモート&フレックス制だから、働く場所を選ばず時間の使い方も自由です。
そんなワークライフバランスの整った環境で、当ブログに書かれているような
様々な技術を共に学びながら、Drupalサイト開発に携わってみたい方を募集しています。
まずはお話だけでも大歓迎!ぜひお気軽にご連絡ください。