cakephperの日記(CakePHP, Laravel, PHP) Twitter


継続的WebセキュリティテストサービスVAddyを始めました!

2009-06-04

超便利な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のパネルの中に表示されるようになります。画面がすっきりするし、画面が本番と同じようにみえるので、こっちのほうが好きです。

f:id:cakephper:20090604185248j:image


Sessionパネル

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

f:id:cakephper:20090604185253j:image


Requestパネル

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

f:id:cakephper:20090604185251j:image


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

f:id:cakephper:20090604185252j:image


Variableパネル

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

f:id:cakephper:20090604185246j:image


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

f:id:cakephper:20090604185247j:image



Historyパネル

これは直近のPostされたデータなどを数件記憶しておき、これをクリックするとVariablesパネルに記憶されたPostデータを表示してくれるもの。

例えばposts/addをクリックすると前にPostで追加したデータの内容が後からでもVariablesパネル内で見ることができる。

f:id:cakephper:20090604185249j:image


Sqlログパネル

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

f:id:cakephper:20090604185254j:image


ログパネル

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

f:id:cakephper:20090604185250j:image


Timerパネル

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

f:id:cakephper:20090604185255j:image


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

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


追記

PHP4だとうまく動かない可能性があります。その場合は下記のberu222さんの投稿を参考に修正下さい。

http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1937&forum=9&post_id=4753#forumpost4753

allisonallison 2009/06/04 22:40 解説ありがとうございます。
便利とは聞いていても、最新ソースの取得は厳しいです…。
手軽に zip を導入してみましたが、
こんな簡単なのに非常にパワフルで、もう手放せない感じです。
丁度、開発中でウンウン唸っていたところで、
問題自体は解決してないんですけど、ちょっとスッキリしましたw

cakephpercakephper 2009/06/04 23:16 > allisonさん

コメントありがとうございます。そうなんですよ、手軽で強力なんですよね。共感してもらえて嬉しいです。
たしかにthechaw.comからgitでダウンロードするのは敷居が高いんですよねぇ。
開発がんばってください!

yandodyandod 2009/06/05 08:57 debug_kit導入済みcakephpをnightlyでビルドしてdlできればいいのかな

cakephpercakephper 2009/06/05 12:34 >yandodさん

コメントありがとうございます
そうですね、nightlyでzipにしてダウンロードできるだけでかなり便利になりそうです。まずはDebug_kitだけのやつを、ちょっと作ってみます。

muchagmuchag 2011/07/03 19:50 はじめまして。
いつも参考にさせていただいております。

こちらの記事も大変参考になりました。
ありがとうございました。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証