![](https://img.php.cn/upload/article/000/000/038/5d0993580b348896.png)
Protobuf 简介
protobuf(Protocol buffers)是谷歌出品的跨平台、跨语言、可扩展的数据传输及存储的协议,是高效的数据压缩编码方式之一。
Protocol buffers 在序列化数据方面,它是灵活的,高效的。相比于 XML 来说,Protocol buffers 更加小巧,更加快速,更加简单。一旦定义了要处理的数据的数据结构之后,就可以利用 Protocol buffers 的代码生成工具生成相关的代码。甚至可以在无需重新部署程序的情况下更新数据结构。只需使用 Protobuf 对数据结构进行一次描述,即可利用各种不同语言或从各种不同数据流中对你的结构化数据轻松读写。
Protocol buffers 很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。
此外,Protobuf由于其在内网高效的数据交换效率,是被广泛应用于微服务的,在谷歌的开源框架grpc即是基于此构建起来的。
php-protobuf安装
由于protobuf原生并不支持php,所以php如果使用pb则需要安装相应扩展。
pecl install protobuf
环境中需要有protoc
编译器,下载安装方式:
$ wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz $ tar zxvf protobuf-2.5.0.tar.gz $ cd protobuf-2.5.0 $ ./configure --prefix=/usr/local/protobuf $ sudo make $ sudo make install
验证安装成功:
$ /usr/local/protobuf/bin/protoc --version libprotoc 2.5.0
php-protobuf安装成功
php --ri protobuf
安装lumen和google/protobuf依赖
lumen new rpc
lumen new rpc
命令相当于composer create-project laravel/lumen rpc
composer require google/protobuf
在composer.json
下添加classmap:
{ "classmap": [ "protobuf/" ] }
ok,准备工作都已做好了。
自己做一个demo
在代码目录下创建一个protobuf文件夹mkdir protobuf
进入该目录,创建一个文件searchRequest.proto
syntax = "proto3"; message SearchRequest { string query = 1; int32 page_number = 2; int32 result_per_page = 3; enum Corpus { UNIVERSAL = 0; WEB = 1; IMAGES = 2; LOCAL = 3; NEWS = 4; PRODUCTS = 5; VIDEO = 6; } Corpus corpus = 4; }
以上就是php中使用protobuffer的详细内容,更多请关注php中文网其它相关文章!
![php中文网最新课程二维码](/static/images/article_wechat2021.jpg?1111)
声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
- 上一篇:php程序员怎么接私活
- 下一篇:php开发大部分使用什么服务器
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论