オプション
- :inlined
- :server
- :autoload
- :oop
- :rest
このなかでも自分が使った「inlined」と「oop」についてメモ。
使用したバージョンはApache Thrift v0.9.3。
:inlined
Thriftライブラリに依存しないファイルを生成してくれる。
このオプションを使うと、gen-phpiフォルダが作られてそのなかに生成されたファイルが入れられる。(このオプションのない場合は、gen-phpフォルダが作られる。)
このオプションを使って生成すると、クライアントの呼び出し方が変わるので注意が必要。
inliendオプションなし
$socket = new TSocket();
$transport = new TBufferedTransport($socket, 1024, 1024);
$protocol = TBinaryProtocol($transport);
$client = new TestClient($protocol);
inliendオプションあり
$socket = new TSocket();
$client = new TestClient($socket);
inlinedオプションありで生成したコードを使って、オプションなしのときの呼び方をすると、
「Call to undefined method TBinaryProtocol」のエラーが出て「write()」メソッドがないと怒られる。
:oop
TBaseを継承するオブジェクトの形式でファイルが生成される。オプションを使わない場合に比べてコードが短くなる。
動作における差があるのかどうかは調べきれてません。パフォーマンスとか違うのかな?
参考
- Thrift 0.9.1で、PHPオブジェクトのシリアライズと復元を行う
http://symfoware.blog68.fc2.com/blog-entry-1285.html? - Thriftでphpの雛形を生成するときのオプションについて
http://symfoware.blog68.fc2.com/blog-entry-323.html - thrift/TestClient.php at master · apache/thrift · GitHub https://github.com/apache/thrift/blob/master/test/php/TestClient.php