PHPObject: PHPとFlashのActionScript連携パッケージ

PHPObjectとは、Flexアプリケーション中にAMFPHPを利用してPHP、MySQLと接続、通信サンプルソースコードに紹介した「AMFPHP」と同様、オープンソースのFlash Remotingによる通信でき、FLASHとの連動で、POSTやXML Getで値を渡して通信して普通にRPCな感じパッケージです。

Flash Remotingというものは、HTTP経由でGETパラメータやXMLによりデータを送受信する手段はFlashの中に、Webサーバーと通信するための手法です。送受信されるデータのパースを行う際に煩雑な手順が必要ですから、ちょっと不便な感じですから、Macromedia社(現在のAdobe)からFlash Remotingと呼ばれる機構が提供されています。

Flash Remotingでは,独自のAMF(Action Message Format)というSOAPを基盤とした通信プロトコルを用いて通信を行い,バイナリ形式でのデータ送受信はゲートウエイにより自動的に処理されます。これにより,サーバー側のアプリケーションのリソースをFlashのActionScriptから直接リモート・サービスとして利用することが可能となります。

PHPObjectは,LGPLライセンスのもとにオープンソースで開発されており,有志の手によりマルチバイト文字(UTF-8エンコーディング)も使用可能となっています。

【利用の流れ】 ※PHPObjectには,2種類のサンプルが含まれている
・クライアント
1.Adobe Extension Manager をダウンロードしてインストールします。
2.PHPObject.mxpをAdobe Extension Manager を通してインストールします。

・サーバ
1.Gateway.phpを設置します。
これ経由で、RPCします。Classのディレクトリーを設定すれば
そのクラスがFLASHからリモートで呼べます。

例)メンバー情報を取得するクラスを設置する

class Member extends Base {
private $member;
public function __construct () {
parent::__construct();
error_log( __FUNCTION__ );
$this->member = DB_Factory::create( ‘member’ );
}
}

private function get() {
$this->member->addWhere(’ status = ? ‘, 1);
return $this->member->getAll(0, 5);
}

FLASH Action Scriptから:

import com.ghostwire.phpobject.*;
PHPObject.defaultGatewayKey = “secret”;
PHPObject.defaultGatewayUrl = “http://DOMAIN/flash/Gateway.php”;
PHPObject.enableMultiByte = true;
var member = new PHPObject(’Member’);
member.get( );
member.onResult = function(result) {
trace(result[0][‘name’]);
trace(result[1][‘name’]);
};

RPCのセキュリティの面では、気をつけて動作させてください。

3 thoughts on “PHPObject: PHPとFlashのActionScript連携パッケージ”

Leave a Reply

Your email address will not be published. Required fields are marked *