コードのデバッグ
FlexとPHPのコードが用意できたので、両方のデバッグを行う準備が整いました。まずは、コードにブレークポイントを追加する必要があります。FlexアプリケーションのresultListener
関数1行目と、MyService PHPクラスのhelloWorld()
メソッドの1行目にそれぞれブレークポイントを追加してみます。
次に、Flexアプリケーションをデバッグモードで実行することにします。Eclipse上でflex_php.mxmlファイルを選択し、ツールバーのデバッグボタンをクリックします。そしてブラウザを開き、Zend Studioツールバーの「Debug」ボタンをクリックします。その後、「Debug」ボタンの右側にあるボタンをクリックし、メニューから「All pages on this site」を選択します(図14参照)。
PHPデバッガの起動とセットアップ
ここで、いったんブラウザを閉じます(この一連の手順は不可解かもしれませんが、Eclipseにバグがあると思われるため、筆者はこのような回避策をとっています)。次に、Eclipseの作業環境に戻り、Flexアプリケーションを再度デバッグモードで実行します。ブラウザ上でテキストフィールドに任意のテキストを入力し、そばのボタンをクリックします。
これでEclipseのPHPデバッガが起動するはずです。amfphp/service.phpのソースを選択するよう促される場合は、ウィザード上で当該ファイルを選択し、「終了」ボタンをクリックします。ここにも些細なバグがあり、アプリケーションは停止されるものの、この停止はブレークポイントの前で起こります。この問題を回避するには、ツールバーの「再開」アイコン(図15参照)を数回クリックし、helloWorld()
メソッドのブレークポイントに到達するようにします(図16参照)。
この時点で、$name
変数の値が確認できます。この際、「ステップオーバー」ボタン(「再開」アイコンの右側に配置されたボタン)をクリックすると、$return
の値も確認できます。状況が確認できたら、再度「再開」ボタンをクリックします。Flexデバッガが起動し、Flexアプリケーションに配置したブレークポイントに達するまで処理が行われます(図17参照)。ここでは、event.resultメンバーを含む、さまざまなイベントオブジェクトの値を確認することができます。状況が確認できたら、再び「再開」ボタンをクリックします。最後に、アプリケーションによって結果メッセージが表示されます。
作業手順は以上です。思ったより簡単ではなかったでしょうか?