Flex+PHPアプリケーションの構築
プロジェクトを適切に設定できるようになったので、ここでは、AMFPHPを利用してPHPスクリプトと通信する、小さなFlexアプリケーションを開発することにします。オープンソースプロジェクトのAMFPHPを利用すれば、Flexデベロッパーは、FlexからPHPのクラスにリモートプロシージャコールをかけられるようになります。
AMFPHPライブラリのインストール
AMFPHPのアーカイブをダウンロード・解凍します。そして、解凍したファイルを、flex_php-debugフォルダと同じ階層にあたる、Webサーバルートのamfphpフォルダ内に配置します。これでAMFPHPのインストールが完了したことになります。AMFPHPの動作を検証するために、ブラウザを起動し、amfphp/browserフォルダのURLを入力します。筆者のマシン環境では、http://localhost/amfphp/browserがこのURLに相当します。動作が正常であれば、図9のようなページが表示されるはずです。このページでは、AMFが利用できるサービスの検出と、それらの動作検証が行えます。
PHPクラスの作成
AMFPHPを利用すれば、FlexアプリケーションからPHPクラスのメソッドコールを行えます。ただし、呼び出すPHPクラスは、必ずamfphp/servicesフォルダに配置されている必要があります。
PHPコードを記述するにあたり、このフォルダをZend Studioで使用できれば便利だということは言うまでもありません。しかしここで問題になるのは、開発対象のプロジェクトファイルがサーバのルートフォルダに配置されていないことです(つまり、amfphp/servicesフォルダ内にPHPクラスを作成した場合は、FlexPHPプロジェクト上で、このクラスを確認することができません)。幸運にも、この問題に対しては簡単な解決策があります。Eclipseでは、プロジェクトに外部フォルダをリンクできます。Zend Studioの作業画面に戻り、表示がFlex開発パースペクティブになっていることを確認します。そして、プロジェクト名を右クリックし、メニューから新規/その他を選択します。表示されたウィザード上の「フォルダ」を選択し、「次へ」ボタンをクリックします。「新規フォルダ」ウィザードが表示されたら「拡張」ボタンをクリックし、amfphpフォルダを参照します(図10参照)。「終了」ボタンをクリックすると、プロジェクト内に「amfphp」という名のフォルダが新規作成されていることを確認できます。
「新規PHPクラス」ウィザードを起動し、ファイル名(MyService.php)とクラス名(MyService)を入力した後、「終了」ボタンをクリックします(図12参照)。
Eclipseによって新規ファイルが生成され、このファイルが編集可能な状態で開かれます。このクラスはリモートプロシージャコールに用いられるものであることから、少なくとも1つ、メソッドを作成しておく必要があります。ここでは例として、引数を文字列に代入してその結果を返す、以下のコードを使用すると良いでしょう。
<?php
class MyService {
public function helloWorld($name=NULL) {
$ret = 'Hello World, says ' . $name . '!';
return $ret;
}
}
?>
ブラウザを起動し、amfphp/browserのURLを開きます。右側の列に、新たなクラスが表示されていることを確認できるはずです。このクラスを選択すると、helloWorldメソッドの動作検証が行え、何が返されるかを確認することができます。





