php使用protobuf3
1.定义一个protoc 文件 示例:person.proto
syntax="proto3"; //声明版本,3x版本支持php package test; //包名 message Person{ //Person 生成php文件的类名 string name=1; //姓名 int32 age=2; //年龄 bool sex=3; //性别 }
2.安装peotoc成功后,进入cmd 执行命令
protoc --php_out=./ person.proto
命令执行成功后,会在当前目录生成 文件 GPBMetadata/Person.php Test/Person.php
3.在php中使用protobuf需要安装php的扩展,或者使用composer 安装依赖扩展(自动生成 autoload 文件,方便)
composer require google/protobuf
4.建立测试 test.php文件,能够引入生成的php类库文件与composer 安装生成的autoload 文件,执行文件
序列化
<?php include 'vendor/autoload.php'; include 'GPBMetadata/Person.php'; include 'Test/Person.php'; $person = new Test\Person(); $person->setName("xiaozhu"); $person->setAge("20"); $person->setSex(true); $data = $person->serializeToString(); file_put_contents('data.bin',$data); echo $data;
反序列化
<?php include 'vendor/autoload.php'; include 'GPBMetadata/Person.php'; include 'Test/Person.php'; $person = new Test\Person(); $bindata = file_get_contents('./data.bin'); $person = new Test\Person(); $person->mergeFromString($bindata); echo $person->getName();
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步