エス技研

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


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

 
この配列に求めるドメインのトップレベルドメインを追加することで対応することができます。
 
ただし、トップレベルドメインですので、「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の関連記事

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」に関する記事一覧
 
 

 - CakePHP 3.x 4.x

GoogleAdwords

GoogleAdwords

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

Message

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

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

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

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

  関連記事

CakePHP3で生の SQLの実行はConnectionManagerを使う
CakePHP3で生の SQLの実行はConnectionManagerを使う

CakePHP3で生の SQL文を実行する方法を解説。クリエビルダーを使う場合は TableRegistryを利用するが、SQLを実行する場合は ConnectionManagerを使う。プリペアードステートメントの使用方法も解説。

CakePHP4でcontrollerで実行したバリデーションエラーをmodelのにマージする方法
CakePHP4でcontrollerで実行したバリデーションエラーをmodelのにマージする方法

CakePHP4でcontrollerで実行したバリデーションの結果をModelのバリデーション結果に追加するメソッド「setError()」「setErrors()」の使い方の解説。

CakePHP3で他のテーブルのマスタテーブルからセレクトボックス(プルダウンリスト)を作る
CakePHP3で他のテーブルのマスタテーブルからセレクトボックス(プルダウンリスト)を作る

他のテーブルのマスタのレコードからプルダウンリストを作成し、選択できるようにするサンプルプログラムと解説。ORMの設定によりデータベースの値を取得し、配列を作成し optionsに与える。

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

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

CakePHP3でWarning Error: SplFileInfo::openFile()エラーが発生した場合の対処方法
CakePHP3でWarning Error: SplFileInfo::openFile()エラーが発生した場合の対処方法

CakePHP3のキャッシュファイルのパーミッションエラー Error: SplFileInfo::openFile()が発生した場合の対応方法解説。app.phpにキャッシュファイルのパーミッション設定を行い、既存のファイルは削除。

CakePHP3のCakeDC/Users、Authでログインなしでもアクセスを許可する設定
CakePHP3のCakeDC/Users、Authでログインなしでもアクセスを許可する設定

CakePHP3の Authコンポーネントや CakeDC/Usersプラグインなどを利用したユーザ管理・認証システムにおいて、ログインしていなくても見ることができるページの設定方法を解説。

CakePHP 2.3 主キー(ID)以外のキーで更新方法 updateAll

主キー(ID)以外のカラムをキーとして更新する方法、updateAllの使い方をサンプルを用いて解説します。

CakePHP 2.3 Search Pluginで検索処理 その5入力項目に複数項目入力した場合の AND検索、OR検索

CakePHPの検索プラグイン Search Pluginの検索処理の中で複数項目を入力した場合の AND検索、OR検索についての解説です。

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

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

CakePHP3のCakeDC/UsersのUserHelperでログアウトやreCAPTCHAをカスタマイズ
CakePHP3のCakeDC/UsersのUserHelperでログアウトやreCAPTCHAをカスタマイズ

CakeDC謹製Usersプラグインの紹介。UserHelperを利用し、ログアウトのリンクや権限があるときのみ表示されるリンク、プロフィールページへのリンク、reCAPTCHAの設置方法などを解説。