php中使用protobuffer

php中使用protobuffer

Protobuf 简介

protobuf(Protocol buffers)是谷歌出品的跨平台、跨语言、可扩展的数据传输及存储的协议,是高效的数据压缩编码方式之一。

Protocol buffers 在序列化数据方面,它是灵活的,高效的。相比于 XML 来说,Protocol buffers 更加小巧,更加快速,更加简单。一旦定义了要处理的数据的数据结构之后,就可以利用 Protocol buffers 的代码生成工具生成相关的代码。甚至可以在无需重新部署程序的情况下更新数据结构。只需使用 Protobuf 对数据结构进行一次描述,即可利用各种不同语言或从各种不同数据流中对你的结构化数据轻松读写。

Protocol buffers 很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。

此外,Protobuf由于其在内网高效的数据交换效率,是被广泛应用于微服务的,在谷歌的开源框架grpc即是基于此构建起来的。

立即学习“PHP免费学习笔记(深入)”;

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的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2160744.html

(0)
上一篇 2025年2月25日 07:45:35
下一篇 2025年1月4日 02:48:10

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php开发大部分使用什么服务器

    一般来说,本地的php平台分为两种,一种是lamp,即为linux+apache+mysql+php;另一种是wamp,它是windows+apache+mysql+php,而前者一般优秀于后者。 Apache和PHP之间的关系(推荐学习:…

    2025年2月25日
    200
  • seo和php哪个值得学

    今天看到一个有意思的问题:seo和php哪个值得学? 从大方向考虑seo属于营销类范畴,php则属于编程类范畴,其不再一个对比面上。万物总有联系,seo与php是有很强的关联的,诸如很多的建站系统都是php做的,做seo的时候懂得php会提…

    2025年2月25日
    200
  • php有哪些cms框架

    内容管理系统或cms是一个用于管理新闻的应用程序,用户可以从后台管理系统发布、编辑和删除文章。html 和其他脚本语言不需要操作cms,尽管使用它们会增加更多优势。无疑php的cms框架是最多的,国内国外都很多也比较成熟,可以大大节省自己开…

    2025年2月25日
    200
  • php安卓编辑器有哪些

    博主开始学php的时候就是用手机,到现在也有一年多了,时间过得真快,再过几天就要买电脑了,所以想把这些软件分享出来,让大家即使没有电脑也能敲代码! 跟电脑一样,运行php程序需要先搭建环境,电脑上有phpstudy、wamp这些一键安装的环…

    2025年2月25日
    200
  • php开发工程师需要掌握哪些技能

    根据各大招聘网站的数据分析,2017年it行业,其中从事软件开发和数据分析的毕业生的月薪最高。究其原因是因为随着互联网的不断发展,岗位人才稀缺,需求量大。那么如何快速的成为软件开发人员,比如php开发工程师,php开发工程师应该具备那些技术…

    2025年2月25日
    200
  • 常用的php开发工具有哪些

    由于最近我准备要自学php,所以整理了一些常用的php开发工具,给大家分享一下: NetBeans(推荐学习:PHP视频教程) NetBeans是一款免费并且功能强大的PHP IDE,它支持多语言,包括英语、日语、俄语、葡萄牙语和简体中文。…

    2025年2月25日
    200
  • php判断文件是否为txt文件

    可以使用pathinfo方法来通过后缀名进行判断文件类型。 代码示例:(推荐学习:PHP视频教程) /** * 获取文件后缀(如果文件名为11.11,11不是后缀,会默认11为后缀)* $file string 文件路径或者文件名*/fun…

    2025年2月25日
    200
  • wordpress需要会php吗

    wordpress是使用php语言开发的博客平台,用户可以在支持php和mysql数据库的服务器上架设属于自己的网站。也可以把 wordpress当作一个内容管理系统(cms)来使用。 WordPress是一款个人博客系统,并逐步演化成一款…

    2025年2月25日
    200
  • php哪个函数能取得字符串长度

    php获取字符串长度函数strlen和mb_strlencount() – 计算数组中的单元数目,或对象中的属性个数strlen — 获取字符串长度,一个汉字为3个字符mb_strlen() – 获取字符串的长度 &…

    2025年2月25日
    200
  • php常用扩展有哪些

    在此总结,开发中经常使用到的扩展,来进行日常PHP的开发工作 bcmath(精确数值处理)bz2calendarCorectypecurldatedomeregexiffileinfofilterftpgettexthashiconvigb…

    2025年2月25日
    200

发表回复

登录后才能评论