Thrift сервис для Thrift Client на основе PHP - PullRequest
1 голос
/ 25 ноября 2011

Я скачал файл tharft .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 Ответ

4 голосов
/ 28 ноября 2011

Вам необходимо скомпилировать MyService.thrift IDL-файл с помощью thrift-компилятора, чтобы получить MyService.php примерно так:

thrift --gen php MyService.thrift

, пожалуйста, также посмотрите это руководство

...