Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有Javascript和PHPAJAX接口生成建议,比如thrift?_Php_Javascript_Ajax_Rpc_Thrift - Fatal编程技术网

有没有Javascript和PHPAJAX接口生成建议,比如thrift?

有没有Javascript和PHPAJAX接口生成建议,比如thrift?,php,javascript,ajax,rpc,thrift,Php,Javascript,Ajax,Rpc,Thrift,我基本上是在寻找ApacheStrift,但是要在JavaScript与Ajax和PHP之间进行交流。 我知道Thirft会同时生成这两个函数,但据我所知,JavaScript代码必须通过JSONProtocol进行讨论,而JSONProtocol还没有用PHP编写 有没有其他可供选择的方案 如果你不熟悉节俭,这是我需要的一个简单的定义: 将其视为通用接口定义语言(IDL),其中我设置了一个用户对象、一个AuthenticationResult对象和一个名为UserCommands.Authen

我基本上是在寻找ApacheStrift,但是要在JavaScript与Ajax和PHP之间进行交流。 我知道Thirft会同时生成这两个函数,但据我所知,JavaScript代码必须通过JSONProtocol进行讨论,而JSONProtocol还没有用PHP编写

有没有其他可供选择的方案

如果你不熟悉节俭,这是我需要的一个简单的定义:

将其视为通用接口定义语言(IDL),其中我设置了一个用户对象、一个AuthenticationResult对象和一个名为UserCommands.Authenticate()的方法

我运行了一个程序或者别的什么,它基于上面的内容创建了JS和PHP库

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

在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可以期望接收自己的本机对象。 通过out提供了可用方法的类型提示,以及预期的参数和返回结果


任何想法都将不胜感激

首先,php中有
json\u encode
json\u decode
函数。
其次,本机php类型有一个序列化/非序列化
不过,我不明白,你的意思是“……其中的协议还没有用PHP编写。”


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

我知道encode/decode和serialize/unserialize方法,但Thrift目前没有“解码”JSON消息的格式。Thrift中通常有一个名为TJSONProtocol的文件,用于处理消息并将JSON转换为Thrift对象。从头开始编写TJSONProtocol有点大,因为您需要知道Thrift使用的消息的格式/模式。也就是说,Haxe可能就是我想要的。我真的忘了(我以前用它来做flash)。我来看看。
var myAuthResult = UserCommands.Authenticate('myUser', 'myPass');
alert ("My first name is : " + myAuthResult.user.firstName);
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;
}