【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の使い方について忘れてしまったら、この記事を思い出してくださいね。

LINEで送る
Pocket

SEからWebエンジニアへ転職した理由

侍エンジニア塾卒業生の小池さんは、以前は社内SEとして約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
更新日 : 2019年10月7日

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説