


AMFPHP php remote call RPC, Remote Procedure Call tool quick start tutorial
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
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.

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

How to use Flask-Login to implement user login and session management Introduction: Flask-Login is a user authentication plug-in for the Flask framework, through which we can easily implement user login and session management functions. This article will introduce how to use Flask-Login for user login and session management, and provide corresponding code examples. 1. Preparation Before using Flask-Login, we need to install it in the Flask project. You can use pip with the following command

A colleague got stuck due to a bug pointed by this. Vue2’s this pointing problem caused an arrow function to be used, resulting in the inability to get the corresponding props. He didn't know it when I introduced it to him, and then I deliberately looked at the front-end communication group. So far, at least 70% of front-end programmers still don't understand it. Today I will share with you this link. If everything is wrong If you haven’t learned it yet, please give me a big mouth.

1. this keyword 1. Type of this: Which object is called is the reference type of that object 2. Usage summary 1. this.data;//Access attribute 2. this.func();//Access method 3.this( );//Call other constructors in this class 3. Explanation of usage 1.this.data is used in member methods. Let us see what will happen if this is not added classMyDate{publicintyear;publicintmonth;publicintday; publicvoidsetDate(intyear,intmonth,intday){ye

jQuery is a popular JavaScript library widely used for DOM manipulation and event handling in web development. One of the important concepts is the use of this keyword. In jQuery, this represents the DOM element currently being operated on, but in different contexts, the pointer of this may be different. This article will analyze the usage skills of this in jQuery through specific code examples. First, let's look at a simple example:

The arrow function in JavaScript is a relatively new syntax. It does not have its own this keyword. On the contrary, the this of the arrow function points to the scope object containing it. The impacts are: 1. This in the arrow function is static; 2. Arrow Functions cannot be used as constructors; 3. Arrow functions cannot be used as methods.

Flask-Login: User Authentication in Python web applications Security and user authentication are an integral part of Python-based web application development. Flask-Login is an excellent Python library that helps developers easily add authentication functionality to their Flask applications and provides a simple and flexible way to handle user login and logout. This article will introduce you to the basics of Flask-Login

What is this? The following article will introduce you to this in JavaScript, and talk about the differences between this in different calling methods of functions. I hope it will be helpful to you!

How does JavaScript change this pointer? The following article will introduce to you three methods of changing this pointer in JS. I hope it will be helpful to you!
