[CakePHP] Debugkit(デバッグツール)

Debugkitとは
10分程度で設置できる、CakePHPのデバッグツールのプラグイン。

Debugkitの設置方法

  1. 下記URLからファイル名の日付が最も新しいZIPファイルをダウンロードする。

    http://git2zip.com/thechaw/debugkit/

  2. ZIPファイルを解凍してできたdebug_kitというフォルダを、app/plugins以下に置く。
  3. /app/config/core.phpのデバッグレベルを2に設定する。
    	Configure::write('debug', 2);

    運営中の本番環境でデバッグツールを使用する場合は、以下のように記述する。
    (***.***.***.**のところに開発者のIPアドレスを入れる。)

    if (env('REMOTE_ADDR') == '***.***.***.**') {
    	Configure::write('debug', 2);
    } else {
    	Configure::write('debug', 0);
    }
  4. /app/app_controller.phpに下記の一文を追加する。
    class AppController extends Controller {
    	var $components = array('DebugKit.Toolbar');
    }

    最新版は、gitでダウンロードできるらしい。まだZIPファイルには入っていないものがあるので、
    以下のURLから最新ソースを取得して、ファイルを上書きすると最新版が使用できるそうだ。

    http://thechaw.com/debug_kit

  5. 設置が完了すると、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

引用させていただきました。ありがとうございます。

こちらもあわせてどうぞ
  1. [CakePHP] Benchmarkコンポーネント(パフォーマンスの計測)
  2. [CakePHP] CMSのページ生成機能にカラーピッカーをつける
  3. [CakePHP] Formヘルパーの拡張
  4. [CakePHP] 「複数バリデーションの切り替え」と「エラーメッセージの自動生成」ができるビヘイビア
  5. [CakePHP] TinyMCEヘルパー(見たまま編集エディター)
  6. [CakePHP] Thumbnailヘルパー(サムネイル画像)
HatenaGoogle BookmarksYahoo BookmarksFacebook

コメントする

*