Devel Kint Extras

Devel の Kint 統合を強化し、デバッグ中にオブジェクトで利用可能なメソッドと静的プロパティを表示します。

devel_kint_extras
5,458 sites
25
drupal.org

インストール

Drupal 11, 10, 9 v1.1.6
composer require 'drupal/devel_kint_extras:^1.1'

概要

Devel Kint Extras は、Devel モジュール内の Kint デバッグ機能を拡張する開発用モジュールです。Kint を使用して PHP オブジェクトを検査する際、このモジュールは出力を強化し、オブジェクトで利用可能なメソッドと静的プロパティを表示することで、開発者がオブジェクト構造と利用可能な機能を理解しやすくします。

このモジュールは、Devel のデフォルト Kint ダンパープラグインを拡張バージョンに置き換えることで動作し、イテレーター展開の無効化、コンテナインターフェースの浅いブラックリスト化、よりクリーンな出力フォーマットなどの追加設定オプションを提供します。

重要なお知らせ: このモジュールは現在廃止とマークされています。Devel v5.4.0 で Kint 統合が削除されたため、新しい Devel バージョンではこのモジュールは機能しません。代わりにスタンドアロンの Kint モジュールの使用を推奨します。

Features

  • Kint 出力で PHP オブジェクトの利用可能なメソッドと静的プロパティを表示
  • Devel の Kint ダンパープラグインを拡張設定で強化
  • イテラブル検査時によりクリーンな出力を得るため IteratorPlugin を無効化
  • サービスコンテナの深い検査を防ぐため ContainerInterface を浅くブラックリスト化
  • よりクリーンな出力のため Kint の RichRenderer でフォルダ表示を無効化
  • 内部デバッグ関数用の Kint エイリアスを自動設定

Use Cases

強化されたオブジェクトデバッグ

Entity、サービス、プラグインなどの複雑な Drupal オブジェクトをデバッグする際、このモジュールは利用可能なすべてのメソッドと静的プロパティを表示し、クラスのドキュメントを調べることなく、オブジェクトでどのような操作が可能かを開発者が理解できるようにします。

よりクリーンなコンテナ検査

サービスコンテナへの参照を含むオブジェクトを検査する際、浅いブラックリストにより Kint がコンテナ全体を再帰的にダンプすることを防ぎ、より高速で読みやすい出力が得られます。

イテレーター展開の回避

Iterator インターフェースを実装するオブジェクトの場合、無効化された IteratorPlugin により全要素の自動展開を防ぎ、大規模なコレクションをデバッグする際のパフォーマンス問題や膨大な出力を回避できます。

Tips

  • このモジュールは現在廃止されています - Drupal 用のスタンドアロン Kint モジュールへの移行を検討してください
  • モジュールは透過的に動作します - 有効化後の設定は不要です
  • Devel で通常使用するように dpm()、kint()、または ksm() 関数を使用してください
  • 拡張された Kint 出力は、馴染みのない Entity タイプやサービスクラスを調査する際に特に便利です

Technical Details

Hooks 1
hook_devel_dumper_info_alter

Devel ダンパープラグインの定義を変更します。このモジュールはこの hook を使用して、デフォルトの Kint ダンパークラスを拡張された KintExtended クラスに置き換えます。

Troubleshooting 3
モジュールが Devel 5.4.0 以降で動作しない

Devel 5.4.0 で組み込みの Kint 統合が削除されました。このモジュールは現在廃止されています。代わりにスタンドアロンの Kint モジュール(https://www.drupal.org/project/kint)を使用してください。

Kint 出力で拡張機能が表示されない

モジュールが有効化されていることを確認し、キャッシュをクリアしてください。モジュールは hook_devel_dumper_info_alter を介して自動的に Kint ダンパークラスを置き換えます。

kint-php/kint ライブラリが見つからない

Composer 経由でモジュールをインストールして、kint-php/kint 依存関係が自動的にインストールされるようにしてください。手動ダウンロードでは必要なライブラリが含まれない場合があります。

Security Notes 3
  • このモジュールは開発環境専用です
  • 機密情報が公開される可能性があるため、本番サイトではこのモジュールや Devel モジュールを決して有効化しないでください
  • サポートされているバージョンにはセキュリティアドバイザリカバレッジがあります