php中使用protobuffer

php中使用protobuffer

内容导读

收集整理的这篇技术教程文章主要介绍了php中使用protobuffer,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1831字,纯文字阅读大概需要3分钟

内容图文

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
--versionlibprotoc 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的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php中使用protobuffer全部内容,希望文章能够帮你解决php中使用protobuffer所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com