PHP中使用Protobuf简介

栏目: PHP · 发布时间: 8年前

内容简介:PHP中使用Protobuf简介

protobuf简介

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前只提供了 C++、 JavaPython 三种语言的 API。

官方不支持PHP,不用担心,高手在民间。上Github搜索一下就有了。

安装protobuf

wget http://protobuf.googlecode.com/files/protobuf-2.4.1.tar.bz2 tar -jxvf protobuf-2.4.1.tar.bz2  cd protobuf-2.4.1/ ./configure make make install

查看protobuf版本

protoc --version

编译 PHP 的protobuf扩展

在Google上搜索 protobuf PHP 可在github上找到两个与之相关的开源项目,它们是:

https://github.com/allegro/PHP-protobuf

https://github.com/drslump/Protobuf-PHP

在这里主要介绍allegro的编译方法(别问为什么,因为drslump的编译方法在我的电脑上不成功 -_- ||)。

下面介绍centos(CentOSLinux release 7.0.1406 (Core))环境中下载,编译:

wget https://github.com/allegro/php-protobuf/archive/master.zip unzip master.zip cd php-protobuf-master

安装依赖

yum install php-devel

假如PHPize不在默认目录,可以使用 which PHPize 查看,然后写全路径去执行PHPize,我这里是默认在 /usr/bin 目录,可以直接执行,执行之后可以看到以下输出

[root@VM_18_199_centos php-protobuf-master]# phpize Configuring for: PHP Api Version:         20100412 Zend Module Api No:      20100525 Zend Extension Api No:   220100525

PHP-config的目录也使用 which PHP-config 这个命令去查看路径,这一步需要安装gcc

yum -y install gcc-c++

安装完gcc之后则开始正式安装pb

./configure make make install

最后会看到类似这样的安装提示,则说明安装成功。

[root@VM_18_199_centos php-protobuf-master]# make install Installing shared extensions:     /usr/lib64/php/modules/

现已成功把pb编译至/usr/lib64/PHP/modules/protobuf.so

开启PHP的pb扩展

找到PHP.in,加入这行代码:

extension=/usr/lib64/php/modules/protobuf.so

重启nginx

/usr/sbin/nginx -s reload  //重启php-fpm kill -SIGUSR2 `cat /run/php-fpm/php-fpm.pid`

假如是Apache,则重启Apache

protoc --version

0

编译proto文件

新建一个简单的proto文件:

protoc --version

1

输入以下内容:

protoc --version

2

编译。注意,这里需要引用到protoc-PHP.PHP这个文件,注意路径。

protoc --version

3

编译成功后会在当前目录生成一个pb_proto_test.PHP文件,内容如下:

protoc --version

4

这里会继承 ProtobufMessage 类,它是在 protobuf.so 中自动加载的。

写一个测试类来测试一下:

protoc --version

5

运行

protoc --version

6

可以看到输出:

protoc --version

7


以上所述就是小编给大家介绍的《PHP中使用Protobuf简介》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

SNS网站构建

SNS网站构建

Gavin Bell / 张卫星、李占波、徐静 / 机械工业出版社 / 2011-2 / 69.00元

过去的十年里,Web成为了非常重要的社交工具。社会活动已经超出了BBS这个概念,而指范围更广的互联网。大多数人对Facebook、MySpace以及Twitter并不陌生,事实上,现在很多人在网络上都有个人档案。社会媒体已经成为我们生活的一部分,它可以让我们的生活更加美 好,也可以使其更糟糕,像公民新闻这样的表达已变得很常见。仅仅Facebook就有两亿注册用户。那么在这个新领域中到底有什么奥秘呢......一起来看看 《SNS网站构建》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具