DebugKit ドキュメント
DebugKit は、CakePHP 2 アプリケーションにデバッグ用のツールバーを追加します。このプラグインは、 pieceofcake2/cakephp 向けの cakephp/debug_kit のフォークです。
- インストール
- ツールバー
- パネル: 組み込みのパネルと独自のパネルの開発
- 設定: ツールバーの設定、リクエスト履歴のストレージ、キャッシュエンジン
- 2.2.x からのアップグレード
- 2.3.x と 2.2.x の ツールバーのスクリーンショット
- クレジット
インストール
Composer でプラグインをインストールします。
composer require --dev pieceofcake2/debug_kitプラグインのタイプは cakephp-plugin なので、composer/installers によってプラグインディレクトリに インストールされます。正しい場所にインストールされるように、アプリケーションの composer.json で installer-paths を設定してください。
| 構成 | installer-paths |
|---|---|
モダン (config/、src/、templates/、plugins/) | "plugins/{$name}/": ["type:cakephp-plugin"] |
レガシー (app/Config/、app/Plugin/) | "app/Plugin/{$name}/": ["type:cakephp-plugin"] |
プラグインを有効にする
config/bootstrap.php (レガシー構成では app/Config/bootstrap.php) でプラグインを読み込みます。 すでに CakePlugin::loadAll() を使っている場合は不要です。
CakePlugin::load('DebugKit');src/Controller/AppController.php (レガシー構成では app/Controller/AppController.php) に ツールバーのコンポーネントを追加します。
class AppController extends Controller
{
public $components = ['DebugKit.Toolbar'];
}config/core.php で debug が 1 以上のときに、ツールバーが表示されます。
レイアウト (通常は templates/Layouts/default.ctp、レガシー構成では app/View/Layouts/default.ctp) から sql_dump エレメントを削除してください。このエレメントは Sql Log パネルが読み込む前にクエリログを空にしてしまうので、パネルに "No query logs" と表示されます。
ツールバー
2.3.0 から、ツールバーは DebugKit 5 (cakephp/debug_kit 5.x) の見た目とアーキテクチャを、 CakePHP 2 に合わせて取り入れています。
- HTML ページの右下に小さな CakePHP のアイコンが表示されます。クリックするとツールバーが開き、 ページの下部にパネルごとのボタンが並びます。ボタンをクリックすると、パネルの内容がスライドして 表示されます。Esc でパネルまたはツールバーを閉じ、矢印キーでパネルを切り替えます。
- ツールバーは iframe の中に描画されます。そのため、アプリケーションの CSS や JavaScript がツールバーを 壊すことはなく、ツールバーがアプリケーションを壊すこともありません。
- 各リクエストの最後 (
ToolbarComponent::shutdown()、リダイレクトの場合はbeforeRedirect()) に、 パネルが描画されて リクエスト履歴のストレージ に 保存され、小さなローダースクリプト (webroot/js/inject-iframe.js) が</body>の前に挿入されます。 その後、ツールバー (/debug_kit/requests/view/<id>) と各パネル (/debug_kit/panels/view/<id>/<panel>) が、プラグインのコントローラーへの別々のリクエストで 読み込まれます。 - 記録されたすべてのレスポンスには
X-DEBUGKIT-IDヘッダーが付きます。ページが行った Ajax リクエスト (XMLHttpRequestとfetch()) は History パネルに一覧表示され、History パネルで任意のリクエストを 選ぶと、そのリクエストのパネルがツールバーに表示されます。 - ツールバーは HTML のレスポンスにだけ挿入されます。JSON、XML、Ajax、
requestAction()、 リダイレクトのレスポンスは記録されますが (History パネルから確認できます)、レスポンス自体は 変更されません。DebugKit プラグイン自体へのリクエストは記録されません。
プラグインのコントローラーは、デフォルトのプラグインルート (/:plugin/:controller/:action/*) に 依存しています。このルートは、routes.php の require CAKE . 'Config' . DS . 'routes.php'; で 読み込まれます。

クレジット
ツールバーの見た目とアーキテクチャは、cakephp/debug_kit 5.x (Copyright (c) Cake Software Foundation, Inc.、MIT License) から移植したものです。コピーして変更した ファイルには元の著作権表示が残されています。一覧は NOTICE をご覧ください。 Raleway フォントは SIL Open Font License 1.1 でライセンスされています (webroot/css/raleway-OFL.txt)。
由来
このパッケージは cakephp/debug_kit (Packagist では cakephp/debug_kit、アップストリームの最終バージョンは 2.2.9) のメンテナンスされたフォークで、 元の作者は Mark Story と CakePHP コミュニティ (Cake Software Foundation, Inc.) です。 pieceofcake2 が、モダンな PHP で動く CakePHP 2 向けに メンテナンスしています。オリジナルからの変更点は フォーク以降のコミット履歴 で確認できます。
