「PHPで書かれたソフトウェアのデバッグをするときって,ステップ実行ができないから,print_r関数や,var_dump関数を使わざるを得ず効率が悪い」
こう思ってる人が結構いるようなんですが,実は勘違いです.というかこれは過去の話です.最近は,ZendDebuggerというものを使うことで,PHPでもステップ実行しながらデバッグをすることができるようになっています.
このことって,PHPエンジニアの人でも知らない人が結構いるような気がしてきたので,以下,ローカル環境でPHPをステップ実行しながらデバッグする方法について書いてみます.
PHPのデバッグにはZendDebuggerというものを使います.私は普段,Eclipse上でPHPのPDT(PHP Development Tool)プラグイン(PHPでプログラムをを開発するためのプラグイン)を使って開発を行ってますので,それを前提に説明します.
1. Eclipse をダウンロードする.
EclipseのWebサイトからEclipseをダウンロードします.
2.PHPプロジェクトの作成
メニューのFIleからPHPプロジェクトを新規作成します.
3.PDT上でコードを書く.
気が向くままに,コードを書いてみてください.
4.PHP Debug用のパースペクティブに切り替える.
右上からパースペクティブを切り替えます.PHP Debugが表示されていない場合は,Open Persectiveをクリックすれば,表示されるんじゃないかと思います.
5. お好みでブレイクポイントを設定する.
ソースコードの任意の行の左側をダブルクリックして,ブレイクポイントを設定します.下の画像では2行目にブレイクポイントを設定しています.
6. デバッグを開始する.
F11キーを押すか,メニューのRUn->Debugを選択してデバッグを開始します.Variableウィンドウに,現在の各種変数などが表示されています.
7.続きを実行する.
上の画像では,2行目のforループに入るところでブレイクをかけていましたので,続きを実行させます.
F5を押すと一行毎にステップ実行しますし.F8を押せば次のブレイクポイントまで一気に実行します.このあたりVisualStudioとはキー操作が異なるので注意してください.
ちなみに,ZendDebuggerを利用することで,遠く離れたリモートサーバ上のPHPプログラムをデバッグすることもできます.なかなか便利ですので,「PHPはステップ実行できないからなぁ」を言い訳にPHPを触ってない人は,是非試してみてください.