【CakePHP】Eclipse+PDT+Xdebugを使ったデバッグ方法について、画面付でまとめみる
「CakePHP のおいしい食べ方」さんの「PDT(Eclipse)+xdebug」に追従するエントリーは、私の記事(CakePHPの試食前に、EclipseでPHPの開発環境を整える)を含めて、Eclipse+PDT+Xdebugのインストールの仕方について、記述しているエントリーがほとんどであり、
実際のデバッグ方法について、まとめているエントリーがないので、スクリーンキャプチャ付でまとめます。
CakePHP自体のデバッグモード
CakePHPには、デバッグモードという便利な機能があり、
echoなどを使わなくてもSQLを表示したり、シンタックスエラーがあれば、指摘してくれます。
app/config/core.phpのDEBUG定数により、エラーの報告レベルとデバッグ出力レベルが変わります(0 ~3)。
define('DEBUG', 0);
バッグモード一覧
| DEBUG | モード | 説明 |
| 0 | プロダクションモード | エラーは出力されず、デバッグメッセージも表示されない |
| 1 | 開発モード | ワーニング とエラー、デバッグメッセージを表示 |
| 2 | 開発モード | 1を含み、さらに SQL アウトプットを表示 |
| 3 | 開発モード | 2を含み、現在のオブジェクト(通常はコントローラ)のフルダンプも表示 |
ただ、途中で止めて、自分でセットした(つもり)値が本当にセットされているか、確認したいという欲求を満たしてはくれません。
そこでEclipse+PDT+Xdebugによるデバッグです。
Eclipse+PDT+Xdebugのデバッグ
1.ブレークポイントの設定
ブレークポイントを予め設定します(ブレークポイントを設定しなくても1行づつ進めることでデバッグできますが、CakePHPのようなフレームワークでは、自分の書いたコード以外の処理が多く、現実的ではありません)。ソースの右余白部分でダブルクリックすることで、
ブレークポイントの設定⇔ブレークポイントの解除
が切り替わります。
2.デバッグの設定
実際にデバッグするためには、設定が必要です。
次の設定は、トップ画面から始めることを想定していますが、CakePHPでは、URIに意味を持っている(処理やパラメータ)ので、途中から始めることも可能です。
想定
eclipseのプロジェクト:blog
トップページのURI:localhost/blog
Ⅰ.「ウィンドウ」→「パースペクティブを開く」→「その他」
Ⅱ.「パースペクティブを開く」ダイアログで「PHPデバッグ」を選択し、「OK」をクリックし、PHPデバッグ用のパースペクティブを開きます。
Ⅲ.「実行」→「デバッグ・ダイアログを開く」を選択します。
Ⅳ. 「PHP Webページ」を選択し、「新規の起動構成」アイコンをクリックします。
Ⅴ.右に表示されるダイアログに次のように入力・選択
- 「名前」→適当
- 「Server Debugger」→「Xdebug」
- 「ファイル・プロジェクト」→「」
- 「ブレークポイント」→「最初の行でブレーク」のチェックを外す
- 「URL」→「自動生成」のチェックを外し、「URL」に
「http://localhost/blog」
3.デバッグの実行
「デバッグ」のボタンをクリックして、デバッグ開始です。
※今回は、チュートリアルにあるブログのようなアプリケーションのエントリーの個別表示画面でブレークするようにしてあります
Ⅰ.ブラウザにトップページ(http://localhost/blog)が表示されます。
Ⅱ.個別のページへのリンクをクリックすると、ブレークポイントを含む処理に入り、ブレークポイントで停止します。
変数ビューでは変数の中身をリアルタイムに確認できます。
次のキーまたはアイコンで1行づつ実行したりながら、確認できます。
- 「F5」:ステップイン、その行を実行する前に停止します
- 「F6」:ステップオーバー、その行を実行する前に停止します
- 「F8」:ステップリターン、次のブレークポイントまで実行
ブレークポイントビューで、ブレークポイントの一覧を見たり、一括削除も出来ます。
デバッグを 再度実行するには、
「実行」→「デバッグダイアログを開く」を選択し、先ほど作成したデバッグの設定を選択s・実行します。
最後に
最後に書くのもなんですが、CakePHPだからといって、Eclipse+PDT+Xdebugのデバッグとしては、特別なことはありません。
「CakePHP デバッグ」で検索しても、実際のデバッグをしている様子を見ることが出来ないので、まとめてみました。
PDTの機能自体を知っていると、作業が楽になります。この辺は、Kemworld::Diaryさんの「PDT1.0の機能総ざらえ(というか操作をかたっぱしから試してみた結果)」というエントリーが、大変参考になります。
Popularity: 52 %
by 赤がすき 









コメントはまだありません。