php 解析protobuf,Protobuf在PHP中使用

本文详细指导了如何在PHP环境中安装并配置protobuf扩展,包括PECL安装、protobuf.so的配置及Protoc工具的使用。重点讲解了在Laravel框架中利用protobuf进行数据交互的步骤,适合PHP开发者学习protobuf的实践应用。
摘要由CSDN通过智能技术生成

安装

1.1 安装PHP请自行处理

protobuf安装

2.1 php protobuf扩展安装

请检查PHP是否安装这些扩展,如果没安装 请安装

sudo apt-get install -y php-pear php5-dev autoconf automake libtool make gcc

我们选择使用php pecl 安装该扩展

sudo pecl install protobuf

查看下php.ini的位置

php --ini

然后把 extension="protobuf.so"加到配置文件,重启php-fpm即可

查看是否安装成功

php -m | grep protobuf

如果上面这些操作成功,PHP已经可以使用编译好的protobuf啦

下面我们来安装Protocwget https://github.com/protocolbuffers/protobuf/releases/download/v3.9.1/protoc-3.9.1-linux-x86_64.zip

解压,安装

unzip protoc-3.9.1-linux-x86_64.zip

cd protoc-3.9.1

ln bin/protoc /usr/bin/proto

查看protoc版本号

protoc --version

编写一个protobuf文件(不再举例,自行编辑)

生成php-protobuf文件

protoc --php_out=out_dir 编辑成功的文件名.proto

成功后会生成两个文件 分别为 GPBMetadata,编辑protobuf文件的package目录文件

使用composer来把文件引入,安装protobuf解析库,开始使用。

简单阐述下 在laravel中使用

在框架中 可以执行

protoc --php_out="protobuf/compile" "protobuf/comment.proto"

(第一个路径为 生成文件的位置,二个为操作文件的位置)

然后执行composer安装laravel中解析protobuf的相关库

composer require "google/protobuf"

然后再composer.json文件中配置如下:"autoload": {

"psr-4": {

"App\\": "app/",

"Protoc\\": "protobuf/compile/Protoc",//生成到的位置

"GPBMetadata\\": "protobuf/compile/GPBMetadata"

}

}

在控制器中使用use Protoc\Comment;//引入生成的文件

public function testSendProtobuf()

{

$from = new Comment();

$from->setId(1);

$from->setText('Hello World!');

$from->setCreatedAt(date('Y-m-d h:i:s', time()));

$packed = $from->serializeToString();

return $packed;

}

public function testReceiveProtobuf(Request $request)

{

$parsedComment= new Comment();

$parsedComment->mergeFromString($request->getContent());

return $parsedComment->getId();

}

配置好相关路由 调用下看看结果如何。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值