XAMPP環境でEclipse+PDTでデバッグ

WindowsのXAMPP環境で、Eclipseデバッグする方法を試してみました。
EclipsePHPプラグインには、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なし))でも同様の結果になりました。

※注意点※

  • XdebugCakePHPデバッグした場合、ブレークポイントで止まりません。
    ※パス・マッピングが正しく設定されていれば大丈夫なようです。
    ※先にZend Debuggerでデバッグするとパス・マッピングが正しく設定されるようです。*3
    (上手く動作しない場合は、設定をすべて削除してからZend Debuggerで一通りデバッグした後でXdebugを使用してみてください。)
  • PHP 5.3.1用のXdebugCakePHPデバッグした場合、変数の値が「<Uninitialized>」のまま変化しない事があります。
    ※テンプレートファイル(.ctp)では、きちんと「<Uninitialized>」から変化して表示されます。

Zend Debuggerがmod_rewrite環境では正常に動作しない不具合があったようですが、PHP開発環境の構築(2) ZendDebugger, xdebugの記事にもあるように現在は直っているようです。
Eclipseデバッグをしたい場合は、PHP 5.2の環境を用意して、PDT+Zend Debuggerを選択すると良さそうですね。

編集途中で記事が一部消えました。(^^;A
修正しました。たぶんこれで全部だと思います。

*1:Pleiades All in One PHP(JREあり)には、PHP 5.2.x用のDLLが最初から含まれています。

*2:Xdebugはバージョン2.1.0beta3をダウンロードして使用しました。

*3:設定するかどうかを選択するダイアログが表示されます。