libisky - libi的三言两语 libisky.com

libisky - libi的三言两语

站名: libisky - libi的三言两语

网址: http://libisky.com

目录: 电脑网络 > 安全

PR:

Alexa: 0

备案号:

服务器IP: 192.30.252.153   美国

描述: 阐述遇到的各种问题,分享踩过的各种坑,记录懒得记的各种命令

查询: [ 网站综合查询 | PR查询 | Alexa排名 | 同IP网站 ]

详细介绍

libiskylibi的三言两语文章归档关于友情链接所有文章Thrift在php框架laravel中的应用2016-7-28前言Thrif简介Thrift在osx下的安装我使用的系统是osx10.10,用的最简单的homebrew安装方式,只需要一行指令即刻.thrift文件定义基本类型:bool:布尔值,true 或 false,对应 Java 的 booleanbyte:8 位有符号整数,对应 Java 的 bytei16:16 位有符号整数,对应 Java 的 shorti32:32 位有符号整数,对应 Java 的 inti64:64 位有符号整数,对应 Java 的 longdouble:64 位浮点数,对应 Java 的 doublestring:utf-8编码的字符串,对应 Java 的 String结构体类型:struct:定义公共的对象,类似于 C 语言中的结构体定义,在 Java 中是一个 JavaBeanlist:对应 Java 的 ArrayListset:对应 Java 的 HashSetmap:对应 Java 的 HashMapexception:对应 Java 的 Exceptionservice:对应服务的类namespace php user //命名空间map<i32,string> getinfo(1:i32 uid)}代码生成laravel框架调用composer require apache/thrift即可引入成功,在其他php项目中引入请参见compser说明“autoload”{“classmap”:[“thrift”]}执行下面代码即刻引入成功composer dump-autolaravel服务端添加代码use Thrift\Protocol\TBinaryProtocol;
use Thrift\Transport\THttpClient;
use Thrift\Transport\TPhpStream;
header('Content-Type', 'application/x-thrift');
$handler = new user();//这里是定义在服务端提供服务的类
$processor = new \thrift\opasProcessor($handler);
$transport = new TBufferedTransport(new TPhpStream(TPhpStream::MODE_R | TPhpStream::MODE_W));
$protocol = new TBinaryProtocol($transport, true, true);

$transport->open();
$processor->process($protocol, $protocol);
$transport->close();
function getinfo($uid){
$user = User::find($uid);
return $user;
}
}
laravel客户端添加代码
try {
$transport = new TBufferedTransport($socket, 1024, 1024);
$protocol = new TBinaryProtocol($transport);
$client = new thrift\opasClient($protocol);

$transport->open();
$result = $client->getinfo(1);//调用远程方法
$transport->close();
return $result;

} catch (TException $tx) {
print 'TException: '.$tx->getMessage()."\n";
return null;
}
其他
继续阅读..
新的开始
2016-1-22
惨痛教训
静态博客与go语言
新的开始
继续阅读..
powered by PuGo with Pure

猜你喜欢