XAMPP環境でEclipse+PDTでデバッグ
WindowsのXAMPP環境で、Eclipseでデバッグする方法を試してみました。
EclipseのPHPプラグインには、PDTとPHPeclipseがありますが、PHPeclipseがZend Debuggerに対応していないのと、PHPeclipseでのXdebugの設定方法が分からなかった為、今回はPDTでのデバッグについてご紹介します。
インストール方法はいろんなサイトで紹介されているので、ちょっとした注意点と動作するバージョン情報についてだけ・・・(^-^;
Eclipseはバージョン3.5.1、Pleiadesで日本語化済みのPleiades All in One PHP(JREなし)を使用しています。
動作状況を次の表にまとめてみました。
Xdebug | Zend Debugger | |
---|---|---|
PHP 4.4.9 (XAMPP 1.6.8) |
×(Apacheが落ちる) | ◎ |
PHP 5.2.6 (XAMPP 1.6.8) |
○ | ◎ |
PHP 5.3.1 (XAMPP 1.7.3) |
△(一部動作不良あり) | ×(DLLなし) |
※Xdebugは、PHP 5.2.6とPHP 5.3.1については同梱されているDLLで動作しました。
PHP 4.4.9については、Xdebug 2.0.2をダウンロードして試しました。
(PHP 4.4.6なら大丈夫かも?)
※Zend Debuggerは、Eclipse PHP Development Toolsから「ZendDebugger-5.2.15-cygwin_nt-i386.zip」をダウンロード(Download Only the PHP Debuggerのdownload the Zend Debugger extension binariesをクリックするとファイルリストが表示されます。)して使用しました。*1
なお、私はXAMPP 1.6.8のPHP 5.2.6を5.2.12にバージョンアップして使用していますが、5.2.12でも上記表と同じ結果でした。*2
最新版のEclipse 3.5.2(Pleiades All in One PHP(JREなし))でも同様の結果になりました。
※注意点※
- XdebugでCakePHPをデバッグした場合、ブレークポイントで止まりません。
※パス・マッピングが正しく設定されていれば大丈夫なようです。
※先にZend Debuggerでデバッグするとパス・マッピングが正しく設定されるようです。*3
(上手く動作しない場合は、設定をすべて削除してからZend Debuggerで一通りデバッグした後でXdebugを使用してみてください。) - PHP 5.3.1用のXdebugでCakePHPをデバッグした場合、変数の値が「<Uninitialized>」のまま変化しない事があります。
※テンプレートファイル(.ctp)では、きちんと「<Uninitialized>」から変化して表示されます。
Zend Debuggerがmod_rewrite環境では正常に動作しない不具合があったようですが、PHP開発環境の構築(2) ZendDebugger, xdebugの記事にもあるように現在は直っているようです。
Eclipseでデバッグをしたい場合は、PHP 5.2の環境を用意して、PDT+Zend Debuggerを選択すると良さそうですね。
編集途中で記事が一部消えました。(^^;A
修正しました。たぶんこれで全部だと思います。