ホームページ >バックエンド開発 >PHPチュートリアル >AMFPHP php リモート プロシージャ コール (RPC、リモート プロシージャ コール) ツール クイック スタート チュートリアル_PHP チュートリアル

AMFPHP php リモート プロシージャ コール (RPC、リモート プロシージャ コール) ツール クイック スタート チュートリアル_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:38:19930ブラウズ

これにより、PHP は次のテクノロジとシームレスに通信できるようになります:
(1) Flash および Flex Remoting
(2) JavaScript JSON および Ajax JSON
(3) XML および XML-RPC
RPC とは
リモート プログラム コール ( RPC、リモート プロシージャ コール) は、クライアントとサーバーがデータを交換する方法です。さまざまなパラメーター メソッドのコールバックを使用してローカル オブジェクトを呼び出し、呼び出し結果を受け入れることができます。データの送受信の実装の詳細について心配する必要はありません。実装の詳細は通常、ネイティブ メソッドを呼び出しているかのように抽象的です。
AMFPHPの仕組み
クライアント(Flash/Flex)とサーバーサイド(PHP)は同じ方法を使用してメソッド呼び出しと複雑なデータを記述します。クライアントはリクエストをシリアル化し、ゲートウェイ AMFPHP に送信します。 AMFPHPは、
(1) リクエストをデシリアライズ
(2) 対応するリモートサービスクラスを見つける
(3) クラスをインスタンス化する
(4) セキュリティチェックを実行する
(5) (指定されたパラメータを使用する) サーバー側メソッドを呼び出す
(6) 返されたデータのシリアル化
AMFPHP は、複合型データを正しくシリアル化および逆シリアル化できます。オブジェクトと配列に加えて、リソース データ接続リソースもサポートしています。つまり、リモート メソッドを呼び出して mysql_query を返すだけで、amfphp がすべて処理します。プラットフォームがサポートしている場合 (現在、Flash Remoting と Flex Remoting)、AMFPHP は循環参照とカスタム データを処理することもできます。また、単純なリモート デバッグもサポートしています。クライアント コードを作成する前にリモート サービスをテストできるブラウザーが付属する AMFPHP もあります。 AMFPHP 1.0.1 には、クライアント コードを自動的に生成するテンプレートも追加されています。 AMFPHP 1.9 ベータ版では、AMF3 のサポートが追加されています。
簡単な例
以下では、簡単なログイン例を通じて AMFPHP を予備的に理解します。クライアント側とサーバー側からそれぞれ紹介します。
1、Flex クライアント:
コード

コードをコピーします コードは次のとおりです:

import mx.controls.Alert
import mx.rpc.remoting.mxml.RemoteObject; rpc.events.*;
public var login_remoteObj:RemoteObject = null;
public function initLoginRemoteObject():void
{//RemoteObject を初期化します
this.login_remoteObj = "ログイン";
this .login_remoteObj.destination = "amfphp";
this.login_remoteObj.showBusyCursor = true;
this.login_remoteObj.endpoint = "http://localhost/MyTest/amfphp/gateway.php"; addEventListener( "result"、loginHandler);
this.login_remoteObj.doLogin.addEventListener("fault"、faultHandler);
}
public function doLogin():void
{//サーバーにデータを送信します
var name :String = this.txtName.text;
var pwd = this.txtPassword.text;
data.push(name); .login_remoteObj.getOperation("doLogin").send(data);
}
public function loginHandler(event:ResultEvent):void
{//サーバーから返された結果を処理します
var result:Array =event.result ;
var flag: String = result[0];
if (flag == "0") {
Alert.show("ログイン失敗: " + result[1]); else if (flag == "1) ") {
Alert .show("ログイン成功: " + result[1]);
} else if (flag == "-1") {
Alert.show("例外: " + result[1]);
}
}
public function fastHandler(event: FaultEvent):void
{//エラー処理
Alert.show("sorry, something got lower!!!")
}
}



2 番目、PHP サーバー側

1、amfphp フォルダーが MyTest プロジェクトのルート ディレクトリに配置されます。ブラウザを開いて、次のアドレスを入力して、コードをコピーします。

http ://localhost/MyTest/amfphp/gateway.php
amfphp は、このゲートウェイを使用してサービス クラスを見つけ、リクエストをこれらのサービス クラスに転送して処理します。
2. Login.php ファイルには、ログイン リクエストを処理する Login クラスが含まれています。このファイルは BusinessLogic ディレクトリに配置されます。
コードをコピーします。
コードは次のとおりです。クラスログイン { public function doLogin($data) {
$result = array();
$name = array_shift($data)
$pwd = array_shift($data); == "phinecos" && $pwd == "123") {
$result[] = "1";
$result[] = "あなたは有効なユーザーです!"
} else {
$result[] = "; 0";
$ result[] = "ログインに失敗しました";
}
} catch (Exception $ex) { $result[] = "-1"; $result[] = $ex->getMessage() ; } $result を返す
}
?>
3. globals.php のサービス パス項目を次のように変更し、amfphp のサービス クラスが配置されているディレクトリを指定します
コードをコピーします コードは次のとおりです:

$servicesPath = ".. /BusinessLogic/";

作者: Dongting Sanren
AMFPHP ダウンロード アドレス

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/321785.html技術記事これにより、PHP は次のテクノロジとシームレスに通信できるようになります: (1) Flash および Flex Remoting (2) JavaScript JSON および Ajax JSON (3) XML および XML-RPC RPC リモート プロシージャ コール (RPC、リモート プロシージャ...) とは何ですか?
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。