コード例 #1
0
     * @throws \Exception
     * @return void
     */
    protected function includeFile()
    {
        // 载入该服务下的所有文件
        $service_dir = ThriftClient::getServiceDir($this->serviceName);
        foreach (glob($service_dir . '/*.php') as $php_file) {
            require_once $php_file;
        }
        return $service_dir;
    }
}
/***********以下是测试代码***********/
if (PHP_SAPI == 'cli' && isset($argv[0]) && $argv[0] == basename(__FILE__)) {
    ThriftClient::config(array('HelloWorld' => array('addresses' => array('127.0.0.1:9090'), 'thrift_protocol' => 'TBinaryProtocol', 'thrift_transport' => 'TBufferedTransport', 'service_dir' => __DIR__ . '/../Services/'), 'UserInfo' => array('addresses' => array('127.0.0.1:9090'))));
    $client = ThriftClient::instance('HelloWorld');
    // 同步
    echo "sync send and recv sayHello(\"TOM\")\n";
    var_export($client->sayHello("TOM"));
    // 异步
    echo "\nasync send request asend_sayHello(\"JERRY\") asend_sayHello(\"KID\")\n";
    $client->asend_sayHello("JERRY");
    $client->asend_sayHello("KID");
    // 这里是其它业务逻辑
    echo "sleep 1 second now\n";
    sleep(1);
    echo "\nasync recv response arecv_sayHello(\"KID\") arecv_sayHello(\"JERRY\")\n";
    var_export($client->arecv_sayHello("KID"));
    var_export($client->arecv_sayHello("JERRY"));
    echo "\n";