Debugkitとは
10分程度で設置できる、CakePHPのデバッグツールのプラグイン。
Debugkitの設置方法
- 下記URLからファイル名の日付が最も新しいZIPファイルをダウンロードする。
http://git2zip.com/thechaw/debugkit/
- ZIPファイルを解凍してできたdebug_kitというフォルダを、app/plugins以下に置く。
- /app/config/core.phpのデバッグレベルを2に設定する。
Configure::write('debug', 2);運営中の本番環境でデバッグツールを使用する場合は、以下のように記述する。
(***.***.***.**のところに開発者のIPアドレスを入れる。)if (env('REMOTE_ADDR') == '***.***.***.**') { Configure::write('debug', 2); } else { Configure::write('debug', 0); } - /app/app_controller.phpに下記の一文を追加する。
class AppController extends Controller { var $components = array('DebugKit.Toolbar'); }最新版は、gitでダウンロードできるらしい。まだZIPファイルには入っていないものがあるので、
以下のURLから最新ソースを取得して、ファイルを上書きすると最新版が使用できるそうだ。http://thechaw.com/debug_kit
- 設置が完了すると、CakePHPのアイコンが画面右上に表示される。
これをクリックするとツールバーがでてくるので、あとはいじってみると使い方がわかる。
デバッグレベルが2の場合、通常は、大量のSQL文が画面下に出てくるが、
Debugkitのパネル内に表示されるので、画面がスッキリし、気持ち良く開発ができる。
注意1:DebugKitは、Firefoxでしか正常に動作しないらしい。ブラウザはFirefoxを使うこと
Debugkitのキャッシュがメモリを圧迫した場合の対処法
以下のようなエラーが表示された場合の対処法
Fatal error: Allowed memory size of xxxxxx bytes exhausted (tried to allocate xxxx bytes)
- 方法1:/app/tmp/cache/にある「cake_toolbar_cache~」というファイルをすべて削除する。
- 方法2:履歴が不要な場合は、
var $components = array('DebugKit.Toolbar' => array('history' => false)); とすることで履歴の機能を無効化する。 - 方法3:ToolbarComponent(debugkit/controllers/components/toolbar.php)の以下の箇所を修正する。
/** * Duration of the debug kit history cache * * @var string **/ var $cacheDuration = '+4 hours';
DebugKitとQdmailを併用したためにエラーが発生してメール送信できない場合の対処法
Qdmail::text()で本文をセットする場合は、問題ないが、Qdmail::cakeText()で本文をセットしようとするとエラーが発生してメール送信できない。
DebugKitが$this->viewの値を”View”→”DebugKit.Debug”に変えてしまうのがいけないらしい。
Qdmailでメール送信をおこなうアクションでは、応急処置として、
$this->view = "View";をセットして、強引にQdmail側のエラーを防ぐ形をとる。
ちなみに、このアクションではDebugKitは使えなくなる。
DebugKitとSession(セッション)について
DebugKitが有効な状態のときは、「$_SESSION」(PHPの書式)でも、セッションが使える。
しかし、DebugKitが無効な状態のときは、「$this->Session」(CakePHPの書式)で記述されていないと、
セッションがスタートせず、使えない。
当たり前のことだが、どのような場合でも、CakePHPの書式にのっとって、
「$this->Session」の形式で記述すること。
app/tmp/cache配下にあるcake_toolbar_cacheなんたらというファイルを削除すればOK。また、Historyパネルでキャッシュを利用しているので、履歴が不要ということであれば、
var $components = array('DebugKit.Toolbar' => array('history' => false));
として、履歴の機能を無効化すればキャッシュが生成されなくなります。
もしくは、ToolbarComponent(debugkit/controllers/components/toolbar.php)の
/** * Duration of the debug kit history cache * * @var string **/ var $cacheDuration = '+4 hours';
参考URL
引用させていただきました。ありがとうございます。
こちらもあわせてどうぞ