CakePHPのdebugkitを非表示にしたい。。


どうもこんにちわ!
CakeをBakeしたい年頃のMashikaです!

はい!そんなわけで本日はCakePHPのお勉強をしていて少しつまずいたお話を備忘録として残しておこうと思います!

まぁ題名の通りなんですけどね、、ってかそこかよ!みたいなツッコミが飛んできそうですが、、笑

つまずくまでの流れ


まず、ケーキのバージョンですがコマンドプロンプトから「bin\cake version」って打ってみたところ「3.6.11」って返ってきたので、多分これです。

開発環境としては、XAMPPを使ってローカルに環境を作って、勉強がてら開発を進めていたのですが、、

開発を進めていると画面の右下にずっと可愛いケーキがいるので、なんだこれって思って調べてみたところ、debugkitなるメッチャ便利な機能であることが分かりました。

ただし、可愛いケーキであろうと、画面の右下にずっと居座られるのは邪魔だなーって思って、Google先生に「CakePHP debugkit 非表示」とかで検索したんですよね。

そしたら、流石Google先生というか先人の皆様のおかげで、すぐにそれらしき答えが見つかり、以下の設定を行ってくださいとのことでした。

config/bootstrap.php
/*
 * Only try to load DebugKit in development mode
 * Debug Kit should not be installed on a production system
 */
if (Configure::read('debug')) {
    //Plugin::load('DebugKit', ['bootstrap' => true]);
    Plugin::load('DebugKit', ['bootstrap' => false]);
}

解決やっほーやったね!ってことで早速「config/bootstrap.php」を開き、文字列検索で「debug」ってしたら以下の部分がヒットしてきました。

config/bootstrap.php
/*
 * When debug = true the metadata cache should only last
 * for a short time.
 */
if (Configure::read('debug')) {
    Configure::write('Cache._cake_model_.duration', '+2 minutes');
    Configure::write('Cache._cake_core_.duration', '+2 minutes');
    // disable router cache during development
    Configure::write('Cache._cake_routes_.duration', '+2 seconds');
}

ん?

なんか違くねってか「Plugin::load('DebugKit', ['bootstrap' => true]);」っていう記述がないんだけど、、、

って思ったのですが、とりあえずこのif文の中に「Plugin::load('DebugKit', ['bootstrap' => false]);」を追記してオッケーって思って、ブラウザに戻って画面を更新してみたんですが、、、

ケーキが消えねぇ。。。

となり、食べ物のケーキ以外は嫌いになりかけたのが数時間前のハイライトです。

if文の外に書いてみたりもしたんですが、ダメでした。。
恐らくは単純に僕の知識不足なんだと思っておりますので、どなたかファイナルアンサーをご教示いただけると本当に有難いです。。

そこで、、


debugモードだから表示されてるんでしょ!debugモードやめればいいんでしょ!

ってことで、それらしきファイルを「debug」文字列で検索し続けた結果、configフォルダ配下の「.env.default」「app.default.php」「app.php」にてdebugをtrueにしているのを発見いたしました。

結果、以下の箇所のtrueをfalseに変えました。

config/app.php
/**
 * Debug Level:
 *
 * Production Mode:
 * false: No error messages, errors, or warnings shown.
 *
 * Development Mode:
 * true: Errors and warnings shown.
 */
//'debug' => filter_var(env('DEBUG', true), FILTER_VALIDATE_BOOLEAN),
'debug' => filter_var(env('DEBUG', false), FILTER_VALIDATE_BOOLEAN),

一応、これで目障りなケーキとはお別れすることに成功いたしました。
(もし、何してるんだい君は!という神のお告げを下さる方がいらっしゃいましたら、見過ごさずにお声かけいただけると有難いです。。)

おまけ


CakePHPにデフォルトで入っているCSSファイルのstyle.cssファイルにて以下の記述があるのですが、これってダレトクなんですか、、?
webroot/css/style.css
/* Force equal height by overflowing */
.content,
#actions-sidebar {
    margin-bottom: -99999px;
    padding-bottom: 99999px;
}

最初コンテンツエリアを覆うdivタグのclassにcontentを指定してたら、中身は全然ないのに、常にサイドバーがマックススクロール可能で何事かと思いました。。

未熟なしがないエンジニアに幸あることを願います。

はい!ということで本日はここまでです!!
くだらない記事にお付き合いいただき、ありがとうございました。