亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

AMFPHP php遠(yuǎn)程調(diào)用(RPC, Remote Procedure Call)工具 快速入門教程

 更新時間:2010年05月10日 16:15:15   作者:  
AMFPHP是PHP的遠(yuǎn)程調(diào)用(RPC, Remote Procedure Call)工具。
它可以使PHP與下述技術(shù)無縫通信:
(1) Flash 和 Flex Remoting
(2) JavaScript JSON 和 Ajax JSON
(3) XML 和XML-RPC
什么是RPC
遠(yuǎn)端程序調(diào)用(RPC, Remote Procedure Call) 是一種客戶端與服務(wù)器端交換數(shù)據(jù)方式。我們可以調(diào)用本地對象帶對各種參數(shù)方法設(shè)置回調(diào)并接受調(diào)用結(jié)果。我們不用關(guān)心發(fā)送和接收數(shù)據(jù)的實現(xiàn)細(xì)節(jié)。實現(xiàn)細(xì)節(jié)通常是抽象的,就像我們在調(diào)用本地方法一樣。
AMFPHP的工作原理
 客戶端(Flash / Flex)與服務(wù)器端(PHP) 使用相同的方式描述方法調(diào)用和復(fù)雜數(shù)據(jù)??蛻舳诵蛄谢埱蟛⑺l(fā)送到網(wǎng)關(guān)AMFPHP。AMFPHP再執(zhí)行:
  (1) 反序列化請求
  (2) 找到相應(yīng)的遠(yuǎn)程服務(wù)類
  (3) 實例化類
  (4) 執(zhí)行安全檢查
  (5)(使用指定參數(shù))調(diào)用服務(wù)器端方法
  (6) 序列化返回的數(shù)據(jù)
  AMFPHP可以正確地序列化、反序列化復(fù)雜類型數(shù)據(jù)。除了對象和數(shù)組,它還支持 resources 數(shù)據(jù)連接資源,這就意味著我們可以通過調(diào)用遠(yuǎn)程方法簡單返回mysql_query,amfphp 會處理這一切。如果平臺支持 (目前來說,F(xiàn)lash Remoting 和Flex Remoting),AMFPHP還可以處理循環(huán)引用和自定義數(shù)據(jù)它也支持簡單的遠(yuǎn)程調(diào)試。還有AMFPHP附帶一個瀏覽器,它可以在創(chuàng)建客戶端代碼前測試遠(yuǎn)程服務(wù)。AMFPHP 1.0.1還添加了模板,可以自動生成客戶端代碼。AMFPHP 1.9 beta更是新增了對AMF3的支持。
簡單示例
下面我們通過一個簡單的登錄示例來對AMFPHP有一個初步的認(rèn)識,將分別從客戶端和服務(wù)器端兩個部分進(jìn)行介紹。
一,F(xiàn)lex客戶端:
代碼
復(fù)制代碼 代碼如下:

import mx.controls.Alert;
import mx.rpc.remoting.mxml.RemoteObject;
import mx.rpc.events.*;
public var login_remoteObj:RemoteObject = null;
public function initLoginRemoteObject():void
{//初始化RemoteObject
this.login_remoteObj = new RemoteObject();
this.login_remoteObj.source = "Login";
this.login_remoteObj.destination = "amfphp";
this.login_remoteObj.showBusyCursor = true;
this.login_remoteObj.endpoint = "http://localhost/MyTest/amfphp/gateway.php";
this.login_remoteObj.doLogin.addEventListener("result", loginHandler);
this.login_remoteObj.doLogin.addEventListener("fault", faultHandler);
}
public function doLogin():void
{//登陸操作,向服務(wù)器提交數(shù)據(jù)
var name:String = this.txtName.text;
var pwd:String = this.txtPassword.text;
var data:Array = new Array();
data.push(name);
data.push(pwd);
this.login_remoteObj.getOperation("doLogin").send(data);
}
public function loginHandler(event: ResultEvent):void
{//處理服務(wù)器返回的結(jié)果
var result:Array = event.result as Array;
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 faultHandler(event: FaultEvent):void
{//出錯處理
Alert.show("sorry,出錯了!!!");
}
}

二,PHP服務(wù)器端
1,將amfphp文件夾置于MyTest項目的根目錄下,打開瀏覽器輸入下述地址驗證amfphp是否安裝成功
復(fù)制代碼 代碼如下:

http://localhost/MyTest/amfphp/gateway.php

amfphp就是通過這個gateway來定位我們的服務(wù)類,并將請求轉(zhuǎn)發(fā)給這些服務(wù)類進(jìn)行處理的。
2,Login.php文件,包含了處理登陸請求的Login類,此文件置于BusinessLogic目錄下
代碼
復(fù)制代碼 代碼如下:

<?php
class Login
{
public function doLogin($data)
{
$result = array();
try {
$name = array_shift($data);
$pwd = array_shift($data);
if ($name == "phinecos" && $pwd == "123") {
$result[] = "1";
$result[] = "you are valid user!";
} else {
$result[] = "0";
$result[] = "login failed";
}
} catch (Exception $ex) {
$result[] = "-1";
$result[] = $ex->getMessage();
}
return $result;
}
}
?>

3,將globals.php中的服務(wù)路徑項修改如下,為amfphp指明服務(wù)類所在的目錄
復(fù)制代碼 代碼如下:

$servicesPath = "../BusinessLogic/";

作者:洞庭散人
AMFPHP 下載地址

相關(guān)文章

  • PHP創(chuàng)建自己的Composer包方法

    PHP創(chuàng)建自己的Composer包方法

    這篇文章主要介紹了PHP創(chuàng)建自己的Composer包方法
    2018-04-04
  • 使用Rancher在K8S上部署高性能PHP應(yīng)用程序的教程

    使用Rancher在K8S上部署高性能PHP應(yīng)用程序的教程

    這篇文章主要介紹了使用Rancher在K8S上部署高性能PHP應(yīng)用程序,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 淺談php使用curl模擬多線程發(fā)送請求

    淺談php使用curl模擬多線程發(fā)送請求

    這篇文章主要介紹了php使用curl模擬多線程發(fā)送請求,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Laravel 自動轉(zhuǎn)換長整型雪花 ID 為字符串的實現(xiàn)

    Laravel 自動轉(zhuǎn)換長整型雪花 ID 為字符串的實現(xiàn)

    這篇文章主要介紹了Laravel 自動轉(zhuǎn)換長整型雪花 ID 為字符串的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • thinkPHP5.0框架簡單配置作用域的方法

    thinkPHP5.0框架簡單配置作用域的方法

    這篇文章主要介紹了thinkPHP5.0框架簡單配置作用域的方法,簡單分析了thinkPHP5.0作用域的功能與配置技巧,需要的朋友可以參考下
    2017-03-03
  • PHP?parser重寫PHP類使用示例詳解

    PHP?parser重寫PHP類使用示例詳解

    這篇文章主要為大家介紹了PHP?parser重寫PHP類使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • PHP中的traits簡單使用實例

    PHP中的traits簡單使用實例

    這篇文章主要介紹了PHP中的traits簡單使用實例,本文著重講解traits的語法、traits有什么作用、什么情況下使用traits,需要的朋友可以參考下
    2015-05-05
  • php實現(xiàn)文件上傳基本驗證

    php實現(xiàn)文件上傳基本驗證

    這篇文章主要為大家詳細(xì)介紹了php實現(xiàn)文件上傳基本驗證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • php生成扇形比例圖實例

    php生成扇形比例圖實例

    使用PHP生成扇形比例圖的程序代碼
    2013-11-11
  • 常用PHP封裝分頁工具類

    常用PHP封裝分頁工具類

    這篇文章主要為大家詳細(xì)介紹了常用PHP封裝分頁工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01

最新評論