基于PHP的Thrift客户端的节俭服务

时间:2011-11-24 23:56:08

标签: php service client thrift thrift-protocol

我已经下载了thrift .tar文件并使用了lib / php / src文件夹并将其重命名为thrift。然后在我的PHP文件中编写PHP Thrift Client,我有以下代码:

<?php
 $GLOBALS['THRIFT_ROOT'] = 'thrift';

   require_once 'thrift/Thrift.php';
   require_once 'thrift/transport/TTransport.php';
   require_once 'thrift/transport/TSocket.php';
   require_once 'thrift/protocol/TBinaryProtocol.php';
   require_once 'thrift/transport/TFramedTransport.php';
   require_once 'thrift/transport/TBufferedTransport.php';

   require_once 'thrift/packages/MyService/MyService.php';
   require_once 'thrift/packages/MyService/MyService_types.php';

   $transport = new TSocket('localhost',1100);
   $transport->open();

   $protocol = new TBinaryProtocol($transport);

   $client= new MyServiceClient($protocol, $protocol);

   $result = $client->operation('param1', 'param2');

   Print 'result = ' . $result;

   $transport->close();

当我尝试执行它时,它会给出错误,即我没有MyService个文件。这是正确的我没有那个。我想知道从哪里可以获得该文件或从哪里可以知道如何编写此类服务。我问这是因为我不熟悉Apache Thrift。请告诉我是否我做错了什么或者是否有人知道如何编写服务文件以及它将包含哪些内容?编写PHP Thrift客户端是否需要某种编译器?

请告诉你所知的一切,谢谢你给我一些时间来解决我的问题。

1 个答案:

答案 0 :(得分:4)

您需要使用thrift编译器编译MyService.thrift IDL文件以获取MyService.php:

thrift --gen php MyService.thrift

请同时查看this tutorial