Twig VarDumper
Symfony VarDumperを使用して、Twigテンプレート内のPHP変数をより見やすくデバッグ出力するための拡張されたdump()およびvardumper() Twig関数を提供します。
twig_vardumper
インストール
composer require 'drupal/twig_vardumper:^3.2'
概要
Twig VarDumperは、SymfonyのVarDumperコンポーネントを活用してTwigテンプレートでの変数デバッグを強化する開発者向けツールです。デフォルトのTwig dump()関数をオーバーライドし、追加のvardumper()関数も提供します。どちらの関数もPHP変数を検査するための美しくフォーマットされたインタラクティブな出力を生成します。
Twigデバッグモードが有効な場合、これらの関数は変数を折りたたみ可能でカラーコード化された形式で表示し、標準のvar_dump()出力よりもはるかに優れています。これにより、テーマ開発中にrender array、Entityオブジェクト、ネストされた配列などの複雑なデータ構造を検査することが大幅に容易になります。
このモジュールは開発環境でTwigデバッグモードが有効になっている必要があります。デバッグモードが無効な場合(通常は本番環境)、dump関数は何も返さず、本番サイトにデバッグ出力が表示されないことを保証します。
Features
- Symfony VarDumperを使用して、見やすくインタラクティブなフォーマットで変数を出力する拡張されたdump() Twig関数を提供
- 拡張されたdump機能のエイリアスとしてvardumper() Twig関数を提供
- Twigデバッグモードを自動的にチェックし、デバッグが有効な場合のみ出力
- ブラウザで折りたたみ可能、カラーコード化、インタラクティブな変数ダンプを表示
- 引数なしで呼び出した場合、Twigコンテキスト全体をダンプ
- 引数として渡された特定の変数をダンプ
- 配列、オブジェクト、render array、Entityオブジェクトを含むあらゆる変数タイプで動作
Use Cases
Render Arrayのデバッグ
Twigテンプレートを構築または修正する際、{{ dump(content) }}を使用してrender arrayを検査し、レンダリング前にその構造、利用可能なフィールド、ネストされた要素を理解できます。
Entityオブジェクトの検査
node.html.twigやuser.html.twigなどのEntityテンプレートで作業する際、{{ dump(node) }}や{{ dump(user) }}を使用してEntityオブジェクトを探索し、利用可能なプロパティとメソッドを発見できます。
Twigコンテキストの探索
引数なしで{{ dump() }}を呼び出すと、現在のテンプレートコンテキストで利用可能なすべての変数を確認でき、馴染みのないテンプレートで作業する際や変数の継承を理解する際に役立ちます。
Fieldの値の検査
{{ dump(content.field_name) }}を使用してFieldのrender arrayを検査し、その構造を理解することで、テンプレートでのField出力のカスタマイズが容易になります。
Preprocess変数のデバッグ
hook_preprocess関数を実装した後、テンプレートでvardumper()を使用して、カスタム変数が正しく渡されており、期待される値が含まれていることを確認できます。
Tips
- セキュリティとパフォーマンスのため、本番環境では必ずTwigデバッグモードを無効にしてください
- 出力が膨大になるのを避けるため、コンテキスト全体ではなく特定の変数に対してdump()を使用してください
- ブラウザの開発者ツールと組み合わせて、VarDumper出力を折りたたみ/展開してナビゲーションを容易にしてください
- dump()の出力はテンプレート内で関数が呼び出された場所にインラインで表示されることを覚えておいてください
- 複雑なネスト構造の場合、特定のデータに焦点を当てるために個々のキーをダンプしてください: {{ dump(content['#node']) }}
Technical Details
Hooks 1
hook_help
管理ヘルプページでモジュールのヘルプテキストを提供
Troubleshooting 3
Twigデバッグモードが有効になっていることを確認してください。development.services.ymlでtwig.config.debug: trueを設定し、settings.local.phpでcontainer_yamls行のコメントを解除してください。変更後はすべてのキャッシュをクリアしてください。
Composerを使用してVarDumperコンポーネントをインストールしてください: composer require symfony/var-dumper。ComposerでDrupalを使用している場合、これは依存関係として自動的にインストールされるはずです。
モジュールはインストール時にVarDumperライブラリをチェックします。composer require drupal/twig_vardumperを実行したことを確認してください。これにより、すべての依存関係が自動的にインストールされます。
Security Notes 3
- 本番サイトでは絶対にTwigデバッグモードを有効にしないでください。機密情報が公開され、パフォーマンスが低下する可能性があります
- モジュールはデバッグモードが無効な場合に自動的に出力を防止し、セーフティネットを提供します
- テンプレートを本番環境にデプロイする前に、dump()の呼び出しを削除またはコメントアウトしてください