任何Javascript和PHP AJAX接口生成建议,如thrift?

问题描述 投票:3回答:1

我基本上是在寻找Apache Thrift,而是在Ajax和PHP之间进行JavaScript讨论。我知道Thirft生成两者,但据我所知,JavaScript代码必须通过JSONProtocol进行讨论,其中协议尚未用PHP编写。

还有其他可以提出的替代方案吗?

如果您不熟悉Thrift,这是我需要的简单(ish)定义:

将此视为通用接口定义语言(IDL),我在其中设置User对象,AuthenticationResult结果对象和名为UserCommands.Authenticate()的方法;

struct User {
    1:  number          id,
    2:  string          firstName,
    3:  string          lastName
}

struct AuthenticationResult {
    1:  number              currentTime,
    2:  User            user
}

service UserCommands {
    AuthenticationResult        Authenticate(1:string username, 2:string password)
}

我运行程序或其他东西,它基于上面创建JS和PHP库。

然后,在JS中,我可以调用(使用有用的类型提示)。

var myAuthResult = UserCommands.Authenticate('myUser', 'myPass');
alert ("My first name is : " + myAuthResult.user.firstName);

在PHP中,我会在UserCommands类中设置一个方法,如下所示:

function Authenticate($username, $password) {
   $myUser = new User();
   $myUser->firstName = "Fred";
   $myUser->lastName = "Thompson";
   $myAuthResult = new AuthenticationResult ();
   $myAuthResult->currentTime = date("U");
   $myAuthResult->user = $myUser;
   return $myAuthResult;
}

好处是PHP可以返回本机​​对象,JS可以期望接收自己的本机对象。提供可用方法的类型提示,包括预期的参数和返回结果。

任何想法将不胜感激!

php javascript ajax rpc thrift
1个回答
0
投票

首先,在php中有json_encodejson_decode函数。 其次,本机php类型有序列化/反序列化 但是,我不明白你的意思是“......协议尚未用PHP编写。”

此外,还有一个Haxe语言,可以“编译”成PHP和JavaScript(以及其他一些语言)

© www.soinside.com 2019 - 2024. All rights reserved.