2011-02-10 3 views
3

私は基本的にApache Thriftを探していますが、JavaScriptとAjaxを使ってJavaScriptを話しています。 私はThirftが両方を生成することを知っていますが、私の知る限りでは、JavaScriptコードはJSONProtocolを介して話す必要がありますが、そのプロトコルはまだPHPで書かれていません。残念ながら、JavascriptとPHP AJAX Interfaceの生成に関する提案はありますか?

提案できる他の選択肢はありますか?

は、汎用的なインタフェース定義言語(IDL)、Iセットアップユーザーオブジェクト、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は、独自のネイティブオブジェクトを受け取ることを期待することができます。 利用可能なメソッドのタイプヒントは、予想されるparamsと戻り値を伴って出力されます。

ご迷惑をおかけして申し訳ございません。

答えて

0

まず、phpにjson_encode関数とjson_decode関数があります。
第2に、ネイティブPHPタイプのシリアライズ/アンシリアル化
」の意味は「PHPでまだ書かれていません」ということはわかりません。

また、そこ

+0

イムエンコード/デコードの認識及び/アンシリアライズ方法をシリアライズPHPとJavaScriptの両方に「コンパイル」させることができるHaXeのlangauge、(及びいくつかの他の言語)ですが、そのフォーマットThriftは現在「解読」していないというJSONメッセージの ThriftにはTJSONProtocolという名前のファイルがあり、メッセージを処理してJSONをThriftオブジェクトに変換します。 Thriftが使用するメッセージのフォーマット/スキーマを知る必要があるので、TJSONProtocolを最初から書き込む方が少しです。 –

+0

それは、Haxeはおそらく私が後にしていることだと言いました。私は実際にそれを忘れました(私はそれをフラッシュのために使用しました)。私は素早く見ていきます。 –

関連する問題