CakePHP3のデバッグキット(DebugKit)を強制的に有効、無効に変更する方法
2019/03/02
CakePHP3のデバッグキットを強制的に有効、無効の切り替えを行う方法
CakePHP3には、強力なデバッグツールとして「デバッグキット(DebugKit)」が付属しています。
これを強制的に有効化したり、無効化したりする方法を解説します
CakePHP3のデバッグキットを強制的に有効にする方法
CakePHP3でプログラム開発をしている際、デバッグキットが表示されていませんでした。
その調査の過程で、エラーログ(/logs/error.log)を見ると、下記のようなワーニングメッセージが出力されていました。
Warning: DebugKit is disabling itself as your host
www.ドメイン.com
is not in the known safe list of top-level-domains (localhost, dev, invalid, test, example, local). If you would like to force DebugKit on use the DebugKit.forceEnable
Configure option.
ざっくり要約すると、下記のような感じです。
「ドメインが開発サイト用のものではないので、デバッグキットの起動を停止します。
強制的にデバッグキットを使う場合は、「DebugKit.forceEnable」の設定をしてください。」
デバッグキットは、開発環境では動作しても、本番環境では動作しないようにしておく必要があります。
そのため、あらかじめ開発環境でありがちなトップレベルドメインとして「localhost, dev, invalid, test, example, local」が設定されており、その場合はデバッグツールが有効になり表示されます。
それ以外の場合は、開発環境ではないとして、デバッグキットは表示されない仕様になっています。
つまり、デバッグキットが表示されないのは、トップレベルドメインが「localhost, dev, invalid, test, example, local」ではないので、開発環境として認識されていない、ということです。
そのため、対応方法としては下記のいずれかになります。
- 開発用のトップレベルドメイン「localhost, dev, invalid, test, example, local」のリストに追加する
- 強制的に有効にする「DebugKit.forceEnable」の設定をする
開発用のトップレベルドメインのリストに追加する
前者の設定は、「/vendor/cakephp/debug_kit/src/toolbarservice.php」の 134行目に以下の記述があります。
1 |
$safeTopLevelDomains = ['localhost', 'dev', 'invalid', 'test', 'example', 'local']; |
この配列に求めるドメインのトップレベルドメインを追加することで対応することができます。
ただし、トップレベルドメインですので、「www.example.com」というドメインの場合は、「.com」がトップレベルドメインとなりますので、テスト環境だけを指定するのはなかなか難しそうです。
ソースコードを確認すると、ホスト名を取得し、「.」で区切った一番最後の文字列を取得して、それをトップレベルドメインとしていました。
なので「www.ドメイン.com」の場合は、「.com」がトップレベルドメインになります。
強制的に有効にする「DebugKit.forceEnable」の設定をする
そのため、普通は、2つ目の項目の「DebugKit.forceEnable」の設定をすることになります。
「DebugKit.forceEnable」を設定する具体的な対処する内容は、「/config/app.php」に下記を追加すれば OKです。
1 2 3 |
'DebugKit' => [ 'forceEnable' => true, ], |
追加する場所は、「app.php」内のどこでも問題ありませんが、本番に移す際はデバッグキットを使用しないように変更する必要がありますので、ファイルの一番最後などに分かりやすく書いておく方がいいでしょう。
CakePHP3のデバッグキットを強制的に無効にする方法
デバッグキットを強制的に有効にする方法を紹介しましたので、ついでに、強制的に無効にする方法も紹介しておきます。
デバッグキットを強制的に無効にする場合は、設定ファイル「/config/app.php」に記述してある内容を、下記の様に変更します。
1 2 3 4 5 |
// 変更前 'debug' => filter_var(env('DEBUG', true), FILTER_VALIDATE_BOOLEAN), // 変更後 'debug' => filter_var(env('DEBUG', false), FILTER_VALIDATE_BOOLEAN), |
「app.php」の 12行目辺りにある設定を、「true」から「false」に変更します。
ただ、先に書いたとおり、一般的なドメインで運用しているサイトは、デバッグキットは無効になりますので、わざわざ強制的に無効にしなくても問題ないと言えます。
CakePHP3の関連記事
CakePHP4のCSS、JavaScript、画像のブラウザへのキャッシュをコントロールするCakePHP3でレコードを保存(追加、更新、Insert、Update)する複数の方法を紹介
CakePHP3でモデルなしフォームからCSVをアップロードしレコードを更新する方法解説
CakePHP3でPHP Simple HTML DOM Parserを使ってスクレイピングする方法
CakePHP3のInsert On Duplicate Key Update(upsert)構文を解説・バルク処理も
CakePHP3の1対多での連携を中間テーブルを使った多対多の連携に変更するときの手順
CakePHP3でデフォルトのソート条件を設定してユーザの選択肢たソート条件を有効にする方法
CakePHP3で Ajaxを使う方法の解説。3.6以降対応。Successとthenの両方を解説。
CakePHP3でパンくずの指定は HTMLヘルパーを使って指定する方法を解説
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
その他の「CakePHP3」に関する記事一覧
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
CakePHP3、CakePHP4のdatetime型カラムの日時の扱い。秒まで表示する方法
CakePHP3の日時カラムで秒まで扱う場合はdate()、strtotime()関数ではうまくいかない。CakePHP3であらかじめ用意された「i18nFormat()」を使用する。
-
CakePHP 2.3で確認画面付きのお問い合わせフォームの作り方
CakePHPで確認画面付きのお問い合わせフォーム、メールフォームの作り方をサンプルを提示しながら解説。
-
CakePHP 2.3 デバッグキット(DebugKit)超初心者向けフォロー講座
CakePHP初心者に向けてデバッグキット(DebugKit)のインストール方法、はまりポイントを解説。
-
CakePHP 2.3 Search Pluginで検索処理 その3入力エリア一つで複数の項目を同時に検索する方法
CakePHPの検索プラグイン Search Pluginの検索処理の中で入力エリア一つで複数の項目を同時に検索する方法を解説。
-
CakePHP4のユーザ管理・ログイン認証プラグインCakeDC/Usersのインストール解説
CakePHP4のユーザ管理プラグイン Usersは、ユーザ登録、メール認証、ログイン認証、ユーザ管理、権限管理、reCAPTCHAなど会員制のサイトを簡単に実現可能。その導入方法、カスタマイズ方法を解説。
-
CakePHP3でPHPExcelを使ってエクセルファイルを生成、出力する方法
CakePHP3でPHPExcelを利用してエクセルを編集、出力するサンプルソース+解説。PHPExcelのインストール方法の解説からファイル保存とダウンロードの方法なども解説。
-
CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法
CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法を解説。複数の方法があるが、getParam()メソッドを使う方法が汎用性があって便利かも。
-
CakePHP 2.3 Search Pluginで検索処理 その2表示件数を動的に変える方法
CakePHPの検索プラグイン Search Pluginの検索処理の中で動的に表示件数を変える方法です。
-
CakePHP 2.3でOn Duplicate Key構文を実装
CakePHPで On Duplicate Key構文を Queryを利用して実装する方法をサンプルソース付きで解説します。
-
CakePHP3で画像・ファイルのアップロード処理を自作・解説付き・その2
ファイルのアップロード機能の自作サンプルコードとその解説のその2。アップロード機能に関連するファイルの更新や削除の処理や画像、フォルダのパスの指定方法などを含めて解説。