<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DigiTechLog Dot Com &#187; RPC</title>
	<atom:link href="http://digitechlog.com/tag/rpc/feed" rel="self" type="application/rss+xml" />
	<link>http://digitechlog.com</link>
	<description>Adobe AIR、Flex、Flash、Java</description>
	<lastBuildDate>Tue, 08 Nov 2011 12:46:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHPObject: PHPとFlashのActionScript連携パッケージ</title>
		<link>http://digitechlog.com/2009/08/25/phpobject-is-a-flash-remoting-alternative-for-php.html</link>
		<comments>http://digitechlog.com/2009/08/25/phpobject-is-a-flash-remoting-alternative-for-php.html#comments</comments>
		<pubDate>Tue, 25 Aug 2009 11:35:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[PHPObject]]></category>
		<category><![CDATA[RPC]]></category>
		<category><![CDATA[オープンソース]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2009/08/25/phpobject-is-a-flash-remoting-alternative-for-php.html</guid>
		<description><![CDATA[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&#160;function __construct () {
parent::__construct();
error_log(&#160;__FUNCTION__ );
$this-&#62;member = DB_Factory::create( ‘member’ );
}
}
&#160;
private&#160;function get() {
$this-&#62;member-&#62;addWhere(’ status = ? ‘, 1);
return $this-&#62;member-&#62;getAll(0, 5);
}
FLASH Action Scriptから：
import com.ghostwire.phpobject.*;
PHPObject.defaultGatewayKey = “secret”;
PHPObject.defaultGatewayUrl = “http://DOMAIN/flash/Gateway.php”;
PHPObject.enableMultiByte = true;
var&#160;member = new PHPObject(’Member’);
member.get(&#160;);
member.onResult = function(result)&#160;{
trace(result[0]['name']);
trace(result[1]['name']);
};
RPCのセキュリティの面では、気をつけて動作させてください。
Related Posts

FOAM-AS3: ActionScript [...]]]></description>
			<content:encoded><![CDATA[<p>PHPObjectとは、<a href="http://digitechlog.com/2008/11/29/how-to-use-amfphp-to-connect-my-flex-applications-with-php-and-mysql-database-sample-source-code.html">Flexアプリケーション中にAMFPHPを利用してPHP、MySQLと接続、通信サンプルソースコード</a>に紹介した「AMFPHP」と同様、オープンソースのFlash Remotingによる通信でき、FLASHとの連動で、POSTやXML Getで値を渡して通信して普通にRPCな感じパッケージです。</p>
<p>Flash Remotingというものは、HTTP経由でGETパラメータやXMLによりデータを送受信する手段はFlashの中に、Webサーバーと通信するための手法です。送受信されるデータのパースを行う際に煩雑な手順が必要ですから、ちょっと不便な感じですから、Macromedia社（現在のAdobe)からFlash Remotingと呼ばれる機構が提供されています。</p>
<p>Flash Remotingでは，独自のAMF(Action Message Format)というSOAPを基盤とした通信プロトコルを用いて通信を行い，バイナリ形式でのデータ送受信はゲートウエイにより自動的に処理されます。これにより，サーバー側のアプリケーションのリソースをFlashのActionScriptから直接リモート・サービスとして利用することが可能となります。</p>
<p><span id="more-587"></span> </p>
<p>PHPObjectは，LGPLライセンスのもとにオープンソースで開発されており，有志の手によりマルチバイト文字（UTF-8エンコーディング）も使用可能となっています。</p>
<p><strong>【利用の流れ】　</strong>※PHPObjectには，2種類のサンプルが含まれている<br />・クライアント<br />1.Adobe Extension Manager を<a href="http://www.adobe.com/jp/exchange/em_download/" rel="nofollow" target="_blank">ダウンロード</a>してインストールします。<br />2.PHPObject.mxpをAdobe Extension Manager を通してインストールします。
<p>・サーバ<br />1.Gateway.phpを設置します。<br />これ経由で、RPCします。Classのディレクトリーを設定すれば<br />そのクラスがFLASHからリモートで呼べます。
<p>例）メンバー情報を取得するクラスを設置する  </p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">Member</span><span style="color: Gray;"> </span><span style="color: Green;">extends</span><span style="color: Gray;"> </span><span style="color: Blue;">Base</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">private</span><span style="color: Gray;"> $</span><span style="color: Blue;">member</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">__construct</span><span style="color: Gray;"> </span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">parent</span><span style="color: Gray;">::</span><span style="color: Blue;">__construct</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">error_log</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">__FUNCTION__</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">$</span><span style="color: Green;">this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">member</span><span style="color: Gray;"> = </span><span style="color: Blue;">DB_Factory</span><span style="color: Gray;">::</span><span style="color: Teal;">create</span><span style="color: Olive;">(</span><span style="color: Gray;"> ‘</span><span style="color: Blue;">member</span><span style="color: Gray;">’ </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">private</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Teal;">get</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">$</span><span style="color: Green;">this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">member</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">addWhere</span><span style="color: Olive;">(</span><span style="color: Gray;">’ </span><span style="color: Teal;">status</span><span style="color: Gray;"> = ? ‘, </span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">return</span><span style="color: Gray;"> $</span><span style="color: Green;">this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">member</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getAll</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">5</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>FLASH Action Scriptから：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">ghostwire</span><span style="color: Gray;">.</span><span style="color: Blue;">phpobject</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Blue;">PHPObject</span><span style="color: Gray;">.</span><span style="color: Blue;">defaultGatewayKey</span><span style="color: Gray;"> = “</span><span style="color: Blue;">secret</span><span style="color: Gray;">”;</span></li>
<li><span style="color: Blue;">PHPObject</span><span style="color: Gray;">.</span><span style="color: Blue;">defaultGatewayUrl</span><span style="color: Gray;"> = “</span><span style="color: Blue;">http</span><span style="color: Gray;">:</span><span style="color: #ffa500;">//DOMAIN/flash/Gateway.php”;</span></li>
<li><span style="color: Blue;">PHPObject</span><span style="color: Gray;">.</span><span style="color: Blue;">enableMultiByte</span><span style="color: Gray;"> = </span><span style="color: Green;">true</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">member</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">PHPObject</span><span style="color: Olive;">(</span><span style="color: Gray;">’</span><span style="color: Blue;">Member</span><span style="color: Gray;">’</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">member</span><span style="color: Gray;">.</span><span style="color: Teal;">get</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">member</span><span style="color: Gray;">.</span><span style="color: Blue;">onResult</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">result</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Teal;">trace</span><span style="color: Olive;">(</span><span style="color: Blue;">result</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">][</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Olive;">])</span><span style="color: Gray;">;</span></li>
<li><span style="color: Teal;">trace</span><span style="color: Olive;">(</span><span style="color: Blue;">result</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">][</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Olive;">])</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">;</span></li></ol></div>
<p>RPCのセキュリティの面では、気をつけて動作させてください。</p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2010/02/07/foam-as3-2d-rigid-body-physics-engine.html" title="FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン">FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン</a></li>
<li><a href="http://digitechlog.com/2009/01/18/ajax-animator-an-extjs-based-open-source-web-application-creator.html" title="「Ajax Animator」:ExtJSを基づいてWebベースのアニメーションを作成するオープンソース・ソフトウェア">「Ajax Animator」:ExtJSを基づいてWebベースのアニメーションを作成するオープンソース・ソフトウェア</a></li>
<li><a href="http://digitechlog.com/2011/11/08/php-screw.html" title="オープンソースソフトウェアPHP ScrewでPHPスクリプトを暗号化する">オープンソースソフトウェアPHP ScrewでPHPスクリプトを暗号化する</a></li>
<li><a href="http://digitechlog.com/2010/03/12/7-asynchronous-processing-open-source-actionscript-library.html" title="７+ AS3で非同期処理のオープンソースのライブラリ一覧">７+ AS3で非同期処理のオープンソースのライブラリ一覧</a></li>
<li><a href="http://digitechlog.com/2010/02/21/sazamek-flash-based-online-audio-manipulating-platform-with-as3-open-source-library.html" title="Sazameki: Flashを使ったオーディオ操作のためのオンラインプラットホーム">Sazameki: Flashを使ったオーディオ操作のためのオンラインプラットホーム</a></li>
<li><a href="http://digitechlog.com/2010/02/13/as3unit-actionscript-3-junit-for-flash.html" title="AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク">AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク</a></li>
<li><a href="http://digitechlog.com/2010/01/30/glaze-2d-rigid-body-dynamics-game-engine-for-actionsctipt-3.html" title="glaze: ActionScript用2D物理演算エンジン">glaze: ActionScript用2D物理演算エンジン</a></li>
<li><a href="http://digitechlog.com/2010/01/26/flartoolkit-open-source-augmented-reality-in-flash.html" title="FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ">FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2009/08/25/phpobject-is-a-flash-remoting-alternative-for-php.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

