エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


CakePHP3のデバッグキット(DebugKit)を強制的に有効、無効に変更する方法

      2018/08/08

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行目に以下の記述があります。
 

 
この配列に求めるドメインのトップレベルドメインを追加することで対応することができます。
 
ただし、トップレベルドメインですので、「www.example.com」というドメインの場合は、「.com」がトップレベルドメインとなりますので、テスト環境だけを指定するのはなかなか難しそうです。
 
ソースコードを確認すると、ホスト名を取得し、「.」で区切った一番最後の文字列を取得して、それをトップレベルドメインとしていました。
なので「www.ドメイン.com」の場合は、「.com」がトップレベルドメインになります。
 
 

強制的に有効にする「DebugKit.forceEnable」の設定をする

 
そのため、普通は、2つ目の項目の「DebugKit.forceEnable」の設定をすることになります。
 
「DebugKit.forceEnable」を設定する具体的な対処する内容は、「/config/app.php」に下記を追加すれば OKです。
 

 
追加する場所は、「app.php」内のどこでも問題ありませんが、本番に移す際はデバッグキットを使用しないように変更する必要がありますので、ファイルの一番最後などに分かりやすく書いておく方がいいでしょう。
 
 

CakePHP3のデバッグキットを強制的に無効にする方法

 
デバッグキットを強制的に有効にする方法を紹介しましたので、ついでに、強制的に無効にする方法も紹介しておきます。
 
 
デバッグキットを強制的に無効にする場合は、設定ファイル「/config/app.php」に記述してある内容を、下記の様に変更します。
 

 
「app.php」の 12行目辺りにある設定を、「true」から「false」に変更します。
 
ただ、先に書いたとおり、一般的なドメインで運用しているサイトは、デバッグキットは無効になりますので、わざわざ強制的に無効にしなくても問題ないと言えます。
 
 

CakePHP3の関連記事

CakePHP3でComposerでインストールできないプラグイン、外部ライブラリを vendorに入れて手動で読み込む方法
CakePHP3でシェルを作成しコマンドラインから実行・CakePHP2との違い
CakePHP3で生の SQLの実行はConnectionManagerを使う
CakePHP3でデータを保存する save()で発生するエラーを確認する方法を解説
CakePHP3のデバッグキット(DebugKit)を強制的に有効、無効に変更する方法
CakePHP3でWarning Error: SplFileInfo::openFile()エラーが発生した場合の対処方法
VirtualBoxにCakePHP3を設置。必要なCentOS、Apache、PHP、MySQL、Composerをインストールし設定する
CakePHP3にWYSIWYGエディタのCKEditor4を設置、カスタマイズ方法を解説
CakePHP3でページごとに読み込むJavaScript、CSSを変える処理の解説
CakePHP3にデイトピッカー jQuery UI DatePickerを実装する手順の解説
 
その他の「CakePHP3」に関する記事一覧
 
 

 - CakePHP 2.x 3.x

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

CakePHP3でページごとに読み込むJavaScript、CSSを変える処理の解説
CakePHP3でページごとに読み込むJavaScript、CSSを変える処理の解説

CakePHP3でJavaScriptやCSSを編集する基本形から、それらやテンプレート(エレメント)を特定のテンプレートを読み込んだときのみ編集、実行するための方法、ブロック化について解説。

MySQL、CakePHP 2.3で「tinyint(1)」の Boolean型の動作を再確認

MySQL+CakePHPの環境で「tinyint(1)」を利用する際の動作を検証。「tinyint(1)」の Boolean型について CakePHPでは自動処理が実施されていることを確認しました。

CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説
CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説

CakeDC謹製Usersプラグインの紹介。Usersのカスタマイズとして入力項目のバリデーションの変更を、プラグインのファイルは触らずオーバーライドにより実装する方法を解説する。

CakePHPを学ぶ際にはオブジェクト指向を学ぼう

CakePHPはオブジェクト指向で書かれていますので、CakePHPを学ぶにはオブジェクト指向も学びましょう。

CakePHP 2.3で saveの便利な使い方・サンプルソース付き

CakePHPのレコードを保存、更新する際に使う Saveを詳細解説します。

CakePHP3の画像、ファイルアップロードプラグインUpload Plugin 3.0の設置解説・その1
CakePHP3の画像、ファイルアップロードプラグインUpload Plugin 3.0の設置解説・その1

CakePHP3でファイル、画像をアップロードするプラグイン、upload plugin 3を導入する手順を解説した記事。3部作のその1で基本的な導入方法の解説で読みながら簡単に導入が可能。

CakePHP3のユーザ管理・認証プラグイン CakeDC/Usersの導入・機能解説・3.1.5対応
CakePHP3のユーザ管理・認証プラグイン CakeDC/Usersの導入・機能解説・3.1.5対応

CakePHP3のユーザ管理プラグイン Usersは、ユーザ登録、メール認証、ログイン認証、ユーザ管理、権限管理、reCAPTCHAなど会員制のサイトを簡単に実現可能。その導入方法、カスタマイズ方法を解説。

CakePHP 2.3 Model、Controllerの見たい変数の中身をログ出力

CakePHPの Modelや Controllerの変数の中身をログとして出力して見る方法を提供します。

CakePHP3のForm Helperの使い方のまとめ

CakePHP3になりフォームヘルパーの使い方も大きく変わりましたので、使い方をまとめました。基本的な使い方からプラスアルファの便利な使い方まで紹介。

CakePHP3でComposerでインストールできないプラグイン、外部ライブラリを vendorに入れて手動で読み込む方法
CakePHP3でComposerでインストールできないプラグイン、外部ライブラリを vendorに入れて手動で読み込む方法

CakePHP3にComposerからインストールできないプラグインやライブラリなどを利用する方法、vendorにファイルを設置し、composer.jsonを更新し、それを呼び出す方法を詳細に解説。