Home > Backend Development > PHP Tutorial > AMFPHP php remote call RPC, Remote Procedure Call tool quick start tutorial

AMFPHP php remote call RPC, Remote Procedure Call tool quick start tutorial

WBOY
Release: 2016-07-29 08:42:42
Original
858 people have browsed it

It enables PHP to communicate seamlessly with the following technologies:
(1) Flash and Flex Remoting
(2) JavaScript JSON and Ajax JSON
(3) XML and XML-RPC
What is RPC
Remote Procedure Call (RPC, Remote Procedure Call) is a way for the client and server to exchange data. We can call local objects with callbacks for various parameter methods and accept the call results. We don't need to worry about the implementation details of sending and receiving data. Implementation details are usually abstract, as if we were calling a native method.
How AMFPHP works
 Client (Flash/Flex) and server-side (PHP) use the same way to describe method calls and complex data. The client serializes the request and sends it to the gateway AMFPHP. AMFPHP then executes:
  (1) Deserialize the request
  (2) Find the corresponding remote service class
  (3) Instantiate the class
  (4) Perform security check
  (5) Call the server-side method
(using specified parameters) (6) Serialization of returned data
AMFPHP can correctly serialize and deserialize complex type data. In addition to objects and arrays, it also supports resources data connection resources, which means that we can simply return mysql_query by calling the remote method, and amfphp will handle it all. If the platform supports it (currently, Flash Remoting and Flex Remoting), AMFPHP can also handle circular references and custom data. It also supports simple remote debugging. There is also AMFPHP that comes with a browser that can test remote services before creating client code. AMFPHP 1.0.1 also adds templates to automatically generate client code. AMFPHP 1.9 beta adds support for AMF3.
Simple example
Below we will have a preliminary understanding of AMFPHP through a simple login example, which will be introduced from the client side and the server side respectively.
1, Flex client:
Code

Copy code The code is as follows:


import mx.controls.Alert;
import mx.rpc.remoting.mxml.RemoteObject;
import mx.rpc.events. *;
Public var login_remoteObj: RemoteObject = Null;
Public function inition initloginremoteObject (): void {// initialization remoteObject OteObj = New RemoteObject ();
This.login_remoteObj.source = "Login";
this.login_remoteObjj .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
{//Login operation, submit data to the server
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
{//Process the results returned by the server
var result:Array = event.result as Array;
var flag:String = result[0];
if (flag == "0") {
Alert.show("Login failed: " + result[1]);
} else if (flag == "1") {
Alert.show ("Successful login: " + result[1]);
} else if (flag == "-1") {
Alert.show("Exception: " + result[1]);
}
}
public function faultHandler(event: FaultEvent):void
{//Error handling
Alert.show("sorry, something went wrong!!!");
}
}


Second, PHP server side

1, set the amfphp file folder In the root directory of the MyTest project, open the browser and enter the following address to verify whether amfphp is successfully installed. Copy the code. The code is as follows:


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

amfphp uses this gateway to locate our service classes and forward requests to these service classes for processing. 2. The Login.php file contains the Login class that handles login requests. This file is placed in the BusinessLogic directory Code



Copy the code


The code is as follows:


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, modify the service path item in globals.php as follows, specify the directory where the service class is located for amfphp



Copy the code

The code is as follows:

$servicesPath = "../BusinessLogic/";

Author: Dongting SanrenAMFPHP download address The above introduces the AMFPHP php remote call RPC, Remote Procedure Call tool quick start tutorial, including the content. I hope it will be helpful to friends who are interested in PHP tutorials.


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template