在linux下使用protobuf需要注意以下几点
1.新建proto文件
syntax="proto3";
message Person{
string name=1;//姓名
int32 age=2;//年龄
bool sex=3;//性别
}
2.下载protoc
执行命令sudo apt install protobuf-compiler libprotobuf-dev
,使用命令生成 protoc --php_out=. person.proto
,成功会生成 person.php
文件
3.添加composer.json文件
添加一个composer.json文件,运行composer install。这一步卡了很久怎么都不对是因为网络问题直接执行换源 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
,不行的话需要等哈,使用composer config -l -g
可以查看是否更新了
{
"require": {
"google/protobuf": "^3.0"
}
}
4.完成会生成一个vendor目录
5.测试完成
<?php
include 'vendor/autoload.php';
include 'Person.php';
$person = new Person();
$person->setName("dzj");
$person->setAge("25");
$person->setSex(true);
$data = $person->serializeToString();
// 从二进读取数据
$person1 = new Person();
$person1->mergeFromString($data);
$name = $person1->getName();
$age = $person1->getAge();
$sex = $person1->getSex();
echo "Name: $name\n";
echo "Age: $age\n";
echo "Sex: $sex\n";