Любые предложения по созданию интерфейса Javascript и PHP AJAX, например, thrift? - PullRequest
3 голосов
/ 10 февраля 2011

Я в основном ищу Apache Thrift, но говорить между JavaScript через Ajax и PHP. Я знаю, что Thirft генерирует и то и другое, но, насколько мне известно, код JavaScript должен взаимодействовать с JSONProtocol, протокол которого еще не написан на PHP.

Есть ли другие альтернативы, которые могут предложить?

Если вы не знакомы с Thrift, это простое (иш) определение того, что мне нужно:

Рассмотрим это как общий язык определения интерфейса (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 может ожидать получение собственных собственных объектов. Подсказки для доступных методов предоставляются с указанием ожидаемых параметров и возвращаемых результатов.

Любые мысли приветствуются!

1 Ответ

0 голосов
/ 10 февраля 2011

Прежде всего, в php.
есть функции json_encode и json_decode. Во-вторых, есть сериализация / десериализация для собственных типов php
Я не понимаю, однако, что вы имеете в виду под "... из которых протокол еще не написан на PHP."

Кроме того, существует Haxe язык, который можно "скомпилировать" как в PHP, так и в JavaScript (и некоторые другие языки)

...