Drupal で Twig デバッグを行うには、sites/default ディレクトリに services.yml ファイルを作成し、debug 変数を true に設定してからキャッシュをクリアする。
同じディレクトリにある default.services.yml を services.yml にコピーして当該箇所を編集するだけだから難しくはないが、初めての人は戸惑うかもしれない。
この作業を自動化してくれる Twig Debugger というモジュールがあると知り、Drupal 9 で実際に試してみた。
インストールは、通常どおり Composer でファイルを取得して drush で有効化する:
composer require 'drupal/twig_debugger'
drush en twig_debugger
管理画面の UI などはなく、モジュールのインストール時に sites/default/services.yml ファイルが作成され、必要な設定が行われる。
sites/default/services.yml:
parameters:
twig.config:
debug: true
auto_reload: false
cache: false
各変数の詳細は Twig debugging options を参照。
インストール後、サイトが生成したページのソースを見ると、確かにデバッグ情報が出力されていることがわかる:
モジュールをアンインストールすると、インストール時に作成された services.yml ファイルが削除され、元の状態に戻る。デバッグの有効化も無効化も手作業でやるより簡単確実。
なお、インストールやアンインストールを実行するユーザー(drush ならコマンド実行ユーザー、Drupal の管理画面から行う場合は Web サーバーの実行ユーザー)が、sites/default ディレクトリへの書き込み権を持っていないと正常に動作しないので要注意。
参考資料: