【CakePHP入門】デバッグに便利なDebugKitを使ってみよう!

CakePHPでは、開発するときに便利なさまざまなデバッグ機能を使用できるDebuKitが提供されています。

この記事では、

・DebugKitとは
・DebugKitの使い方
・DebugKitの主な機能

という基本的な内容から、

・DebugKitを非表示にする方法

などの応用的な使い方に関しても解説していきます。

ここではそんなDebugKitの使い方について、分かりやすく解説します!

目次

DebugKitとは

DebugKitは、CakePHPで作成されたアプリケーションを簡単にデバックするためのツールです。

DebugKitを使いこなすことで、アプリケーションのデバッグを効率化することができます。

CakePHP2.x系まではDebugKitを使用するために手動でのインストールが必要でしたが、CakePHP3.x系からはデフォルトでインストールされています。

そのため、CakePHPを起動していればすぐに使用することが可能です。

ここではそんなDebugKitについて、主な機能を1つずつ解説していきます。

DebugKitの使い方

DebugKitはCakePHPのトップページ「http://localhost:8888/Cakeのアプリケーション名」の右下にあるCakePHPのログをクリックすれば、ツールバーが表示されてDebugKitの各機能を確認することができます。

top

もし誤って削除してしまった場合は、以下のコマンドをアプリケーションのルートディレクトリから実行して再インストールする必要があります。

php composer.phar require --dev cakephp/debug_kit "~3.0"

プラグインの有効化

bin/cake plugin load DebugKit

詳細は「CakePHP 3.5 Red Velvet Cookbook」を参照してください。
https://book.cakephp.org/3.0/ja/debug-kit.html

DebugKitの主な機能

ここではDebugKitで確認できる主な機能について解説していきます。

Cache

リクエスト中のキャッシュの使用状況の確認やキャッシュのクリアを行います。

「default Metrics」「_cake_core_ Metrics」「_cake_model_ Metrics」などの使用状況や「Clear ~」のボタンをクリックすることでキャッシュをクリアすることができます。

cache
Cache

Environment

PHP及びCakePHPに関連する環境変数を表示することができます。

環境変数とはOSが提供するデータ共有機能で、通常の変数同様に変数名と値を持ちます。

Constantに表示されている「APP」「APP_DIR」などが環境変数で、Valueが値になります。

つまりAPPは’/Applications/MAMP/htdocs/cake/src/‘のパスを持つ環境変数となります。

通常はあまり環境変数については気にすることはありませんが、フレームワークの設定を細かくカスタマイズする場合は、環境変数の設定を変更することもありえます。

そのため、Environmentから環境変数が確認できることは覚えておきましょう。

environment
Environment

History

History(履歴)パネルは以前リクエストした情報の一覧を表示することができます。

一覧に表示されているアクセス履歴をクリックすると、エラーやリダイレクトなどの以前のリクエスト情報が、ツールバーにそのアクセス時に復元されて表示されます。

history
History

Include

タイプごとにグループ化されたインクルードファイルを表示します。

それぞれのグループを選択することで、そのグループに属しているファイルを確認することができます。

include
Include

Packages

現在のバージョンのパッケージの依存関係の一覧を表示します。

それぞれのパッケージのバージョンが確認できますので、常に最新バージョンが適用されているか、チェックすることができます。

packags
Packages

Mail

リクエスト中の全てのメール送信を表示します。

mail
Mail

Request

GET/POSTメソッドによる現在のリクエストやCakeのパラメータ、現在のルート情報、クッキー情報など、リクエストのさまざまな情報を表示します。

とくにHttpリクエストによるデータの形などをチェックしたい場合は、このパネルから確認することができます。

request
Request

Sql Log

各データベースのコネクションのSQLログを表示します。

SQLのクエリーなどの実行にかかった時間を確認したり、クエリーの履歴を確認することができます。

この機能はとくにSQLのチューニング時にパフォーマンスを確認するときに便利です。

SqlLog
Sql Log

Timer

リクエスト中に設定されたタイマーと、メモリーの使用状況を表示することができます。

さまざまなイベントごとに処理時間を計測することができますので、パフォーマンスを確認するときに便利です。

timer
Timer

DebugKitを非表示にする方法

さまざまなデバッグが可能なDebugKitですが、本番での運用時には非表示にしたい場合もあります。

DebugKitを非表示にするには「Cake/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' =>false]);
}

「’bootstrap’ =>」の箇所をtureからfalseに変更することでCakePHPのブラウザの画面上からDebugKitのアイコンを消すことができます。

まとめ

ここではCakePHPの開発で便利なDebugKitについて、使い方や各機能の解説、非表示にする方法などについて紹介しました。

DebugKitを活用すれば、さまざまなデバッグ機能を使用することができますので、使い方はぜひ覚えておきましょう。

もしDebugKitの使い方について忘れてしまったら、この記事を思い出してくださいね。

この記事を書いた人

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

目次