1、从https://github.com/google/protobuf/releases中下载protoc可执行文件

2、参考https://github.com/google/protobuf/tree/master/php安装c的扩展

3、定义协议文件

以User.proto为例

syntax="proto3";
message UserInfo
{int32 id = 1;string name = 2;
}

用protoc编译协议文件,如protoc --php_out=./ User.proto,会在当前目录下生成GPBMetadata目录和UserInfo.php文件

测试代码如下:

<?php
require(__DIR__.DIRECTORY_SEPARATOR.'UserInfo.php');
require(__DIR__.DIRECTORY_SEPARATOR.'GPBMetaData/User.php');
$pbUserInfo = new UserInfo();
$pbUserInfo->setId(1);
$pbUserInfo->setName('echo');
$str = $pbUserInfo->serializeToString();$ptTempUser = new UserInfo();
$ptTempUser->mergeFromString($str);
var_dump("id:".$ptTempUser->getId()." name:".$ptTempUser->getName());

注意,序列化到字符串是用serializeToString,也可以序列化到输出流中用serializeToStream,而反序列化是用mergeFromString

protobuf3在php中的使用相关推荐

  1. GNU Make 使用手册(于凤昌中译版)

    GNU Make 使用手册(中译版) 翻译:于凤昌 GNU make Version 3.79 April 2000 Richard M. Stallman and Roland McGrath 1 ...

  2. carto_grapher快速安装避坑指南

    参考博客 安装准备主要参考了该篇博客! 一点小修改 主要在安装protobuf3的过程中,原始命令安装的分支v3.6.0不存在:git clone -b v3.6.0 https://github.c ...

  3. 面试:第十二章:所有总结

    Java基础 java基本类型哪些,所占字节 byte :1个字节 short :2个字节 char :2个字节 int :4个字节 long :8个字节 float :4个字节 double :8个 ...

  4. linux内核分析(转自某位大哥网上的笔记)

    启动 当PC启动时,Intel系列的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处的代码,也就是ROM-BIOS起始位置的代码.BIOS先进行一系列的系统自检,然后初始化位于地址0的中断 ...

  5. Unity中使用Protobuf3.0

    今天准备在unity中使用protobuf, 但是遇到了一些问题,记录一下. 首先,我们到google protobuf github 上下载工程,主要有两个东西: 1.Protocol Compil ...

  6. 在Unity3D中使用Protobuf3

    Protobuf:平台无关.语言无关.可扩展且轻便高效的序列化数据结构的协议,一般用于网络通信和数据存储 第一步:下载并准备DLL文件 链接:mvn9(或者 https://github.com/pr ...

  7. 手把手教你如何在Unity中使用UnityGoogle.Protobuf3(三) 序列化与反序列化

    手把手教你使用Google.Protobuf3三 序列化与反序列化 1.Untiy工程创建 2.导入Google.Protobuf.dll 3.导入proto协议文件 4.编写序列化与反序列化工具类 ...

  8. Unity中使用Google.Protobuf3,获取dll文件

    获取Google.Protobuf.dll文件,有两中方式可以获取,如下: 第一种方法: 获取官方的Google.Protobuf源码: protobuf各个版本下载地址 https://github ...

  9. protobuf3 import的使用和多proto代码生成和cmake中引用protobuf

    市面上大多博客没介绍如何组建多目录,多proto的项目经验,如果本博客经验如果能帮到你,那真是太好了 本次代码生成C++代码,测试用例采用gtest进行搭建,工程目录如下: hobby.proto 位 ...

最新文章

  1. python下selenium模拟浏览器常见操作
  2. reactjs组件实例的三大属性之state属性使用示例
  3. 今日arXiv精选 | 31篇EMNLP 2021最新论文
  4. Request 接收参数乱码原理解析
  5. python手机编译器可以干什么_Python是什么?Python学习用哪些编译器?
  6. c语言可循环计算器代码,可编程简易计算器(代码)
  7. c语言计算机猜数字100以内,求一个猜数字C语言代码,要求如下 计算机生成一个100以内的随机数,玩家来猜 记录猜的次数,最后打...
  8. docker 容器开启ssh服务
  9. eclipse启动不起来,eclipse.ini配置问题(支持大内存64bit问题)
  10. MediaPlayer 的prepareAsync called in state 8 错误
  11. visual studio 2015 2017 key vs2015 vs2017密钥
  12. jquery属性过滤选择器[attr=value]、[attr!=value]、[attr^=value]、[attr$=value]、[attr*=value]、[attr|=value]
  13. 安卓开发 底部导航图标切换时动画效果_体验安卓 10:好用百倍都不止!
  14. 别再透支你的社交信用了
  15. 自动化测试-selenium初始化Driver参考
  16. Putty CentOS SSH 总是自动断开连接
  17. 微信小程序服务端调用--小程序码 wxacode.getUnlimited 接口调用,实现微信扫码直接跳转小程序页面
  18. 根文件系统与文件系统的区别
  19. Picture2Epub
  20. 将qq目录下文件写如qq.txt

热门文章

  1. Sql字符串操作函数
  2. redis性能测试报告
  3. android EditText监听事件及参数详解
  4. 前1000位粉丝的诞生
  5. 在 ASP.NET MVC 中使用 Chart 控件
  6. 编程语言python入门要电脑什么配置能带动-Python是万能的编程语言吗?这五大用途很重要!...
  7. 中国有多少python程序员-“刚毕业1年,做Python能挣多少?”网友:吹的不多……...
  8. python 画柱状图-python使用Plotly绘图工具绘制柱状图
  9. python手机软件-Python爬虫:抓取手机APP的数据
  10. 编程中python怎么读-编程语言如何在Python中读写文件