tp6 使用 ProtoBuf

以下为无需c扩展版本

官网下载protoc脚本

window下下载win32或者win64版本,mac下载osx版本

解压后得到文件夹(以mac为例)protoc-21.4-osx-x86_64,可运行的脚本protoc在bin文件夹下

编写proto消息类型,保存为person.proto

syntax="proto3";
package proto;
message Person{
    string name=1;
    int32  age=2;
}

执行脚本,生成类库

protoc --php_out=protobuf/compile --proto_path=protobuf/proto protobuf/proto/*.proto
# 第一个路径为 生成文件的位置及编译成哪种语言,第二个为存储proto文件的位置,第三个表示当前文件下所有proto文件
# proto文件需要在同一目录下,不能在子文件夹下

执行后生成文件

GPBMetadata/Person.php
Proto/Person.php
在php中使用

当前项目下安装依赖扩展,安装composer依赖扩展

composer require google/protobuf

注意国内镜像可能下载失败,可以将镜像改为 https://repo.packagist.org 后重新执行

序列化

......
use GPBMetadata/Person;
use Proto/Person;
......
$person = new Person();
$person->setName("张三");
$person->setAge(27);
$data = $person->serializeToString();
......

反序列化

......
use GPBMetadata/Person;
use Proto/Person;
......
$data = $this->request->param('protodata');
$person = new Person();
$person->mergeFromString($data);
$person->getName();
$person->getAge();
......

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值