LoginSignup
7
6

More than 5 years have passed since last update.

cakephp3 debug_kitが表示されない

Last updated at Posted at 2018-06-15

cakephp2系の時はpluginフォルダに入れるだけだったんだけど、
cakephp3系では元から入ってるけど表示されなくて
苦労したんでメモ代わりに書いておく。

前提条件

公式サイト通りにComposerでインストールしていることが前提。

下記の内容がtrueになっているか確認。

./config/bootstrap.php
if (Configure::read('debug')) {
    Plugin::load('DebugKit', ['bootstrap' => true]);
}

結論

./vendor/cakephp/debug_kit/config/bootstrap.php
if (!$service->isEnabled() || php_sapi_name() === 'cli' || php_sapi_name() === 'phpdbg') {
    return;
}

この行を下記のように変更する。

./vendor/cakephp/debug_kit/config/bootstrap.php
if ( php_sapi_name() === 'cli' || php_sapi_name() === 'phpdbg') {
    return;
}

理由

開発サーバーか本番サーバーどうかをcake側が勝手に判断してデバックキットを表示しないようにしていた為。
今回やったのはどの環境でもdebug_kitを出すようにしていつも通り「bootstrap.php」で表示するか判断できるようにした。

参考サイト

追記(2018年6月19日)

debug_kitのプラグイン内部のコードを書き換えなくてもできますよとコメントで頂いたので修正。

インストール直後は./config/bootstrap.phpの一番下に書いてあることが多い。
if (Configure::read('debug')) {}の場所でdebug_kitのプラグインを読み込む
ここを改修する。

./config/bootstrap.php
if (Configure::read('debug')) {
    Configure::write('DebugKit.forceEnable', true);
    Plugin::load('DebugKit', ['bootstrap' => true, 'routes' => true]);
}

Configure::write('DebugKit.forceEnable', true);

これをtrueにすることで開発サーバーか本番サーバーにかかわらずに
必ずdebug_kitを表示させるようになる。
この書き方の順番だとdebug_kitを読み込んだ後に上書きする形で読み込むので必ず表示するようになる。

7
6
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6