CodeLab技術ブログ

プログラミング技術まとめ

[CakePHP3]DebugKitの仕様がわけわからない

あらゆることが改悪されているCakePHP3。
DebugKitの仕様も意味不明です。しかも、途中で変わったらしくCakePHP3のバージョンによって仕様が違うようで、ネットの情報があてにならないというのが最悪です。
メジャーバージョンでは無意味に仕様変更するのはよくないよ・・・・。

まぁ、文句はとりあえずおいておいて問題点を上げます。
なお、CakePHP3のバージョンは3.7.4になります。ほかのバージョンではまた仕様が違います。

設定する場所

公式サイトにはコンソールでこのようにして使えと書いてあります。
#php composer.phar require –dev cakephp/debug_kit “~3.0”
#bin/cake plugin load DebugKit
1行目がインストール、2行目が組み込みです。
で、設定については、たとえばPackagesの表示を消す場合

// DebugKit をロードする前に
#Configure::write('DebugKit.panels', ['DebugKit.Packages' => false]);

とあるんですが、ロードする前ってどういうことなんだろうかという話になります。
CakePHP3の以前のバージョンではbootstrap.phpあたりでプラグインの読み込みをしていたと思います。
ネットの情報でもほぼ間違いなくbootstrap.phpを書き換えてというようなことが書いてありますが、調べた結果、本バージョンではApplication.phpのbootstrap()メソッドで行ってました。

$this->addPlugin(\DebugKit\Plugin::class); で読みこんでいるので、この直前の行で設定すればよいでしょう。

因みにpluginコマンドでload/unloadができるっぽいことが書いてあったけど、なんか意味ないような気がします。(unloadされなかった)

設定したけど表示されない

環境によっては、設定したけど表示されないかもしれません。
なんと、ローカル開発環境でないと動かない仕様になったようです。何のためのデバッグ設定なんだよー。余計なお世話ですよね。

どうしても動かしたい場合は、この設定を追加すればよいようです。
Configure::write(‘DebugKit.forceEnable’, true);

このドメインの時は除外、みたいな設定はないです。
DebugKitのソースを変えれば変更はできますが、トップレベルドメインで(www.hogehoge.com だったら、.comの部分)判定しているので、大幅に書き換えないとダメっぽい。

動作がもっさり

とりあえず動くようになったけど、なんかパネルを開くのがえらいもっさりしてます。
うーん。これはどうしようもないっぽい。

コメントは受け付けていません。