超便利なDebugkitを画面キャプチャ付きで解説

CakePHPの便利すぎるプラグインであるDebugkitが色々と機能追加されてたので、今の最新版でどうなっているか画面キャプチャをベースに解説します。thechaw.comにある最新ソースだとid:yandodさんがリクエストしてた「Viewにセットした変数とかヘルパーとか全て表示できるように」というのが、Variablesパネルに加わりました(2009/5/29のコミットで)。


基本的には、下記からZIPダウンロードしてください
http://github.com/cakephp/debug_kit/downloads

(現在の最新版はVersion 1.1)
http://thechaw.com/debug_kit/versions


追記
上記のzipはリリース版です。最新の機能を使いたい場合は下記からファイル名の日付が最も新しいZipダウンロードしてください。
http://git2zip.com/thechaw/debugkit/

ZIPを解凍して出来たdebug_kitというフォルダを、app/plugins以下に置き、app/app_controller.phpに下記の一文を追加するだけで動きます。(core.phpのDebug値は2以上を指定しないと動きません)

class AppController extends Controller {

	var $components = array('DebugKit.Toolbar');

}

最新版はgitでダウンロードできます。yandodさんがリクエストした機能などはまだZIPファイルには入っていないので、できればthechawから最新ソースを取得するのをお勧めします。
http://thechaw.com/debug_kit


DebugkitはFirefoxじゃないとうまく動かないのでご注意ください。


まずはDebug値を2にしてアクセスすると、下記のような画面が表示されます。Debugkitを組み込むと発行したSQL文は画面上ではなく、Debugkitのパネルの中に表示されるようになります。画面がすっきりするし、画面が本番と同じようにみえるので、こっちのほうが好きです。


Sessionパネル
まず、Sessionというパネルをクリックすると、下記のようにSessionにセットした値が一覧表示されます。階層となっている箇所は、その箇所をクリックしていくと下層の内容が表示されていきます。


Requestパネル
次にRequestパネル(その1)Postしたデータとか、paginationの情報(optionsに何がセットされているかとか)色々な情報が出力されます。例えばデータ登録ページで最初にpr($this->data);などと書いてPOST内容を確認する必要がなくなります。


Requestパネル(その2) GETの内容とか、Cookieの内容、routeのマッチング内容とかが見れます。


Variableパネル
Variableパネル(その1)。これも$this->dataの中身が見れて、バリデーションエラーがあったらそのエラーメッセージまで見えます。その他にはViewにセットした変数(この画像では $hoge = aaaaaとか)とか、読み込んでいるヘルパーのリストが見えます


Variableパネル(その2)。paginationでセットされた値も、このように見れます。



Historyパネル
これは直近のPostされたデータなどを数件記憶しておき、これをクリックするとVariablesパネルに記憶されたPostデータを表示してくれるもの。
例えばposts/addをクリックすると前にPostで追加したデータの内容が後からでもVariablesパネル内で見ることができる。


Sqlログパネル
発行されたSQLをここで見ることができる。それ以外にも、遅いSQL(デフォルト20msec)は、Explainが実行されてその結果も表示される。遅いクエリがなければ「Warning No slow queries!, or your database does not support EXPLAIN」と表示される。


ログパネル
コントローラで$this->log('hoge');みたいにしてたら、そのログ書き込み内容を表示してくれる。わざわざログファイルを開いて確認しなくてよくなる!


Timerパネル
実行にかかった時間とか、メモリ消費量とか表示してくれる。


どうでしょうか? Debugkit便利そうでしょ!簡単に導入できるのでお勧めです!

最近のコミットログを見ると、簡単にプラグインとしてパネルを追加できる仕組みを作ってるようなので、今後は自分の好きなパネルを簡単に拡張できるかもしれません。


追記
PHP4だとうまく動かない可能性があります。その場合は下記のberu222さんの投稿を参考に修正下さい。
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1937&forum=9&post_id=4753#forumpost4753