PHP-Protobuf的编译
2016-05-24 16:07
495 查看
protobuf简介
Protocol Buffers 是一种轻便高效的结构化数据存储格式,可用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前只提供了 C++、Java、Python 三种语言的 API。
官方不支持PHP,不用担心,高手在民间。上Github搜索一下就有了。
?安装protobuf
查看protobuf版本
?编译php的protobuf扩展
在Google上搜索
protobuf php可在github上找到两个与之相关的开源项目,它们是:allegro/php-protobuf 和drslump/Protobuf-PHP。在这里主要介绍allegro的编译方法(别问为什么,因为drslump的编译方法在我的电脑上不成功 -_- ||)。
下面介绍centos(CentOS Linux release 7.0.1406 (Core))环境中下载,编译:
?安装依赖
?假如phpize不在默认目录,可以使用
which phpize查看,然后写全路径去执行phpize,我这里是默认在
/usr/bin目录,可以直接执行,执行之后可以看到以下输出 ?
php-config的目录也使用
which php-config这个命令去查看路径,这一步需要安装gcc ?
安装完gcc之后则开始正式安装pb
?最后会看到类似这样的安装提示,则说明安装成功。
?现已成功把pb编译至/usr/lib64/php/modules/protobuf.so
开启php的pb扩展
找到php.in,加入这行代码:
?重启nginx
?假如是Apache,则重启Apache
?编译proto文件
新建一个简单的proto文件:
?输入以下内容:
?编译。注意,这里需要引用到protoc-php.php这个文件,注意路径。
?编译成功后会在当前目录生成一个pbprototest.php文件,内容如下:
?这里会继承
ProtobufMessage类,它是在
protobuf.so中自动加载的。 写一个测试类来测试一下: ?
运行
?可以看到输出:
?相关文章推荐
- PHP安装Google protobuf及使用
- windows下编译protobuf
- Google_Protobuf协议——Protobuf安装编译
- 记一次protobuf编译成objectC过程 For ios开发
- Protobuf 编译 windows
- 交叉编译 google protobuf
- protobuf+vs2013编译安装
- Mac OS X 10.9.4编译Protobuf-2.4.1问题
- protobuf2.7.0在RedHat6.4下编译问题
- protobuf windows java 环境搭建(编译出protobuf需要的jar包,解决编译时OutOfMemory的问题)
- protobuf-gen-lua 编译dll文件
- 如何实现protobuf在XCODE上armv7/armv7s/i386的交叉编译
- mac 安装protobuf,并编译为java,c++,python
- protobuf编译.proto文档
- protobuf编译出错的解决方案(iOS,OSX)
- linux下protobuf 下载并cmake编译安装全过程脚本
- win编译安装 protobuf3.2
- Googole Protocol Buffer在VS2008中的编译问题libprotobuf.lib(substitute.obj) : error LNK2001
- 交叉编译 google protobuf
- Protobuf在Visual Studio 2013下编译和使用(1)