【CakePHP4】Debug kitのVariablesタブで多階層の値が表示されない

cakephp4-debugkit-tips-01 CakePHP4

CakePHPを用いた開発では、インストール時に付帯されるDebug kitを活用する場面も多いことであろう。

Debug kitのツールバーには変数・リクエスト情報・クエリログ等、痒い所に手が届く情報群が網羅されている。

変数(Variables)タブもかなりの頻度で使用しているが、一定の階層下の値が表示されない場面に遭遇した。

Debug kitとは?

Debug kitはCakePHPインストール時に付帯されるデバッグツールバーで、画面右下に見える赤いケーキのアイコンを押下すると展開される。

ツールバーには変数・リクエスト情報・クエリログなど開発時に必ず参照するであろう情報群が網羅されているため、積極的に活用したい。

variablesPanelMaxDepth を設定する(bootstrap.php)

さて、今回の本題である「Variablesタブで多階層の値が表示されない」件について触れていきたい。

まず、デフォルトで表示可能な階層は「5階層」となっており、そのことはVariablesタブ上段にも注意書きが挙げられているのが確認できるだろう。

この上限を拡張するには、variablesPanelMaxDepth で上限値を定義することが可能。以下は、5→8に上限を拡張する場合の記述例。

Configure::write('DebugKit.variablesPanelMaxDepth', 8);

この設定をどこに記述するかということになるが、bootstrap.php内に記述している記事を見かけ、試したところ無事に事象が解消された。

Variablesタブ上段にも注意書きも5→8に変わっていることが確認できるため、上記1文をbootstrap.php内に追記すればよい。

variablesPanelMaxDepth を設定する(app_local.php)

上記ではvariablesPanelMaxDepth をbootstrap.php内に追記したが、bootstrap.phpは触らずに環境毎の設定値として扱いたい要望もあるかもしれない。

例えば、app_local.phpを利用して同等のことが実現可能だ。その場合は、app_local.php内に以下の1文を追記すればよい。

'DebugKit.variablesPanelMaxDepth' => 8,

こちらの方が使い勝手がよさそうなので、app_local.phpで管理する案を採用した。

終わりに

実はSessionタブでも同様の事象に遭遇しているが、variablesPanelMaxDepth相当の設定は用意されていないようであった。

何階層まで表示されるかを検証したところ、2階層時点で表示されないようでかなり不便を感じた。

解消方法をご存知の方がいれば、ぜひ教えてください。