AMFPHP
AMFPHP項目主頁:http://www.amfphp.org/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) 執行安全檢查
(5)(使用指定參數)調用伺服器端方法
(6) 序列化返回的數據
AMFPHP可以正確地序列化、反序列化複雜類型數據。除了對象和數組,它還支持resources 數據連線資源,這就意味著我們可以通過調用遠程方法簡單返回mysql_query,amfphp 會處理這一切。如果平台支持 (目前來說,Flash Remoting 和Flex Remoting),AMFPHP還可以處理循環引用和自定義數據它也支持簡單的遠程調試。還有AMFPHP附帶一個瀏覽器,它可以在創建客戶端代碼前測試遠程服務。AMFPHP 1.0.1還添加了模板,可以自動生成客戶端代碼。AMFPHP 1.9 beta更是新增了對amf3的支持。