PHPのdebuggerは敷居が高い(気がする). しかし最近,
Eclipse PDT (Galileo)での開発について, XAMPP on Windows (1.7.2)を想定して書かれた, かなりよい本が出ている.
Eclipse PDTではじめるPHPプログラミング入門―PHP 5.3/PDT 2.1対応
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2009/12
- メディア: 単行本
- 購入: 5人 クリック: 308回
- この商品を含むブログ (9件) を見る
Eclipse PDTではじめるPHPプログラミング入門―PHP 5.3/PDT 2.1対応
* 作者: 掌田津耶乃
* 出版社/メーカー: 秀和システム
* 発売日: 2009/12
ここに書くのは, Mac (Snow Leopard) のXAMPP(1.7.2)と Eclipse PDT (Helios) で PHP の debug をする話. 網羅的でなく, hig3 が詰まったところ中心だけど許してね.
XAMPP は /Applications/XAMPP 以下に install したとしよう.
XDebug を使えるようにする
Eclipse PDT では Zend Debugger と XDebug が使えるが, 本と同様に XDebug を使う. XDebug は XAMPP についてくるので, PECL などで別に install することは必須ではない.
/Applications/XAMPP/xamppfiles/etc/php.ini に
[xdebug] zend_extension="/Applications/XAMPP/xamppfiles/lib/php/php-5.3.0/extensions/no-debug-non-zts-20090626/xdebug.so" xdebug.remote_enable=On
と書く. そのあと Apache を restart.
- zend_extension_ts ではない. この xdebug は non thread free だから.
- zend_extension(_ts)_debug ではない. この xdebug は no-debug だから. これは xdebug に自身のdebug情報が埋め込まれてるかどうか, って話ではないか.
- extension=xdebug.so だけではだめ. 後述のように error がでる.
- remote_enable することは必要. そうしないと, PHP Scriptとしての debug はできても, PHP Web Page としての, Web server / browser の通信を伴う debug はできない.
Eclipse から使う
Debug Configuration を作る. その際, もちろんXDebugを指定する.
PHP Script の場合は PHP Executable を指定, PHP Web Page の場合は PHP Server を指定.
PHP Web Page の Server Tab では,
- File というところには, Project Explorer から見えるような, /(プロジェクト名)/.../(ファイル名) を書く. 実体のファイル名ではない.
- URL というところでは, プロジェクト名とは無関係の, ふつうのURLを書く.
このとき, 実体のないファイルを指定すると, ダイアログ上部に小さく error message が出て. Debug button が gray out する. このときに close すると, 保存はされるが, この状態では debug はできない.