


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.

如何使用Flask-Login实现用户登录和会话管理引言:Flask-Login是一款用于Flask框架的用户认证插件,通过它我们可以轻松地实现用户登录和会话管理功能。本文将介绍如何使用Flask-Login进行用户登录和会话管理,并提供相应的代码示例。一、准备工作在使用Flask-Login之前,我们需要在Flask项目中安装它。可以通过以下命令使用pip

同事因为this指向的问题卡住的bug,vue2的this指向问题,使用了箭头函数,导致拿不到对应的props。当我给他介绍的时候他竟然不知道,随后也刻意的看了一下前端交流群,至今最起码还有70%以上的前端程序员搞不明白,今天给大家分享一下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

jQuery是一种流行的JavaScript库,广泛用于网页开发中的DOM操作和事件处理。其中一个重要的概念就是this关键字的使用。在jQuery中,this代表当前操作的DOM元素,但在不同的上下文中,this的指向可能会有所不同。本文将通过具体的代码示例来解析jQuery中this的使用技巧。首先,让我们来看一个简单的示例:

JavaScript中箭头函数是一种比较新的语法,没有自己的this关键字,相反箭头函数的this指向包含它的作用域对象,影响方面有:1、箭头函数中的this是静态的;2、箭头函数不能作为构造函数使用;3、箭头函数不能用作方法。

Flask-Login:Pythonweb应用程序中的用户身份验证在基于Python的Web应用程序开发中,安全性和用户身份验证是不可或缺的一部分。Flask-Login是一个优秀的Python库,可以帮助开发人员轻松地将身份验证功能添加到他们的Flask应用程序中,并提供了一个简单而灵活的方式来处理用户登录和注销。本文将向您介绍Flask-Login的基

什么是this?下面本篇文章给大家介绍一下JavaScript中的this,并聊聊this在函数不同调用方式下的区别,希望对大家有所帮助!

JavaScript如何改变this指向?下面本篇文章给大家介绍一下JS改变this指向的三种方法,希望对大家有所帮助!


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

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

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

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

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

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.
