AMFPHP php遠端呼叫RPC, Remote Procedure Call工具 快速入門教學課程
它可以使PHP與下述技術無縫通訊:
(1) Flash 和Flex Remoting
(2) JavaScript JSON 和Ajax JSON
(3) XML 和XML-RPC
什麼是RPC
遠端程式呼叫(RPC, Remote Procedure Call) 是一種客戶端與伺服器端交換資料方式。我們可以呼叫本地對象帶對各種參數方法設定回調並接受呼叫結果。我們不用關心發送和接收資料的實作細節。實作細節通常是抽象的,就像我們在呼叫本地方法一樣。
AMFPHP的工作原理
客戶端(Flash / Flex)與伺服器端(PHP) 使用相同的方式描述方法呼叫和複雜資料。客戶端序列化請求並將它傳送到網關AMFPHP。 AMFPHP再執行:
(1) 反序列化請求
(2) 找到對應的遠端服務類別
(3) 實例化類別
(4) 執行安全檢查 (6) 序列化傳回的資料
AMFPHP可以正確地序列化、反序列化複雜型別資料。除了物件和數組,它還支援 resources 資料連接資源,這意味著我們可以透過呼叫遠端方法簡單地返回mysql_query,amfphp 會處理這一切。如果平台支援 (目前來說,Flash Remoting 和Flex Remoting),AMFPHP還可以處理循環引用和自訂資料它也支援簡單的遠端偵錯。還有AMFPHP附帶一個瀏覽器,它可以在創建客戶端程式碼之前測試遠端服務。 AMFPHP 1.0.1也新增了模板,可以自動產生客戶端程式碼。 AMFPHP 1.9 beta更是新增了對AMF3的支援。
簡單範例
下面我們透過一個簡單的登入範例來對AMFPHP有一個初步的認識,將分別從客戶端和伺服器端兩個部分介紹。
一,Flex客戶端:
程式碼
複製程式碼 程式碼如下:
import mx.controlsport mx. Alert;
import mx.rpc.remoting.mxml.RemoteObject;
import mx.rpc.events.*;
public var login_remoteObj:RemoteObject = null;
public function inLoginidem 🎜>{//初始化RemoteObject
this.login_remoteObj = new RemoteObject();
this.login_remoteObj.source = "Login";
this.login_remoteObj。 login_remoteObj.showBusyCursor = true;
this.login_remoteObj.endpoint = "http://localhost/MyTest/amfphp/gateway.php";
this.login_remoteObj.doLoginLogin. 🎜>this.login_remoteObj.doLogin.addEventListener("fault", faultHandler);
}
public function doLogin():void
{//登陸操作,向伺服器提交資料
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
{//處理伺服器返回的結果
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伺服器端
二,PHP伺服器端
二,PHP伺服器端
二,PHP伺服器端1,將amfphp資料夾置於MyTest專案的根目錄下,開啟瀏覽器輸入下述位址驗證amfphp是否安裝成功
複製程式碼
程式碼如下:
http://localhost/MyTest/amfphp/gateway.php
amfphp就是透過這個gateway來定位我們的服務類,並將請求轉發給這些服務類進行處理的。
2,Login.php文件,包含了處理登陸請求的Login類,此文件置於BusinessLogic目錄下
代碼
複製代碼
程式碼如下:
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中的服務路徑項目修改如下,為amfphp指明服務類別所在的目錄
複製程式碼
程式碼如下:
$servicesPath = "../BusinessLogic/";
作者:洞庭散人
AMFPHP 下載位址
以上就介紹了 AMFPHP php遠端呼叫RPC, Remote Procedure Call工具 快速入門教程,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何使用Flask-Login實現使用者登入和會話管理引言:Flask-Login是一款用於Flask框架的使用者認證插件,透過它我們可以輕鬆地實現使用者登入和會話管理功能。本文將介紹如何使用Flask-Login進行使用者登入和會話管理,並提供對應的程式碼範例。一、準備工作在使用Flask-Login之前,我們需要在Flask專案中安裝它。可以透過以下命令使用pip

這篇文章帶大家解讀vue原始碼,來介紹一下Vue2中為什麼可以使用 this 存取各種選項中的屬性,希望對大家有幫助!

同事因為this指向的問題卡住的bug,vue2的this指向問題,使用了箭頭函數,導致拿不到對應的props。當我跟他介紹的時候他竟然不知道,隨後也刻意的看了一下前端交流群,至今最起碼還有70%以上的前端程式設計師搞不明白,今天給大家分享一下this指向,如果啥都沒學會,請給我一個大嘴巴子。

jQuery中this關鍵字的靈活運用在jQuery中,this關鍵字是一個非常重要且靈活的概念,它用來引用目前正在操作的DOM元素。透過合理的運用this關鍵字,我們可以方便地操作頁面中的元素,實現各種互動效果和功能。本文將結合具體的程式碼範例,介紹this關鍵字在jQuery中的靈活運用。簡單的this範例首先,我們來看一個簡單的this範例。假設我們有一

什麼是this?以下這篇文章跟大家介紹一下JavaScript中的this,並聊聊this在函數不同呼叫方式下的區別,希望對大家有所幫助!

JavaScript如何改變this指向?以下這篇文章跟大家介紹一下JS改變this指向的三種方法,希望對大家有幫助!

一、this關鍵字1.this的類型:哪個物件呼叫就是哪個物件的參考類型二、用法總結1.this.data;//存取屬性2.this.func();//存取方法3.this( );//呼叫本類別中其他建構方法三、解釋用法1.this.data這種是在成員方法中使用讓我們來看看不加this會出現什麼樣的狀況classMyDate{publicintyear;publicintmonth;publicintday; publicvoidsetDate(intyear,intmonth,intday){ye

JavaScript中箭頭函數是一種比較新的語法,沒有自己的this關鍵字,相反箭頭函數的this指向包含它的作用域對象,影響方面有:1、箭頭函數中的this是靜態的;2、箭頭函數不能作為構造函數使用;3、箭頭函數不能用作方法。
