protobuf php的使用,关于php:PHP使用protobuf

服务器环境Ubuntu 18.04.5 LTS

PHP7.2.24

装置protoc

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

1.获取v3.13.0.1(截止2020.10.14)

wget https://codeload.github.com/protocolbuffers/protobuf/tar.gz/v3.13.0.1

2.解压

tar zxvf v3.13.0.1

cd protobuf-3.13.0.1

1.生成 configure 脚本;

./autogen.sh

2.编译装置

./configure --prefix=/usr/local/protobuf

make && make install

3.设置全局

export PATH=/usr/local/protobuf/bin:$PATH

4.查看装置胜利

protoc --version

呈现`libprotoc 3.13.0`即装置胜利

装置php-protobuf拓展

pecl install protobuf

接下来,将

`extension=protobuf.so`增加到 `php.ini` 文件(例如 `/etc/php/7.2/fpm/php.ini`)中。

查看php.ini地位

1.cli命令行 php --ini

2.phpinfo();

3.ps -ef | grep php

在我的项目根目录

protoc --php_out="protobuf/compile" "protobuf/protos/DmpDataProto.proto"

生成的构造

├── compile

│ ├── GPBMetadata

│ │ └── Protobuf

│ │ └── Protos

│ │ └── DmpDataProto.php

│ └── Toutiao

│ └── Dmp

│ ├── DmpData.php

│ ├── IdItem_DataType.php

│ └── IdItem.php

└── protos

└── DmpDataProto.proto

composer

composer require google/protobuf:^3.3

在composer.json配置

"autoload": {

"classmap": [

"database/seeds",

"database/factories"

],

"psr-4": {

"App\\": "app/",

+"Toutiao\\":"protobuf/compile/Toutiao",

+"GPBMetadata\\":"protobuf/compile/GPBMetadata/Protobuf/Protos"

}

},

应用

//获取序列化的一行

public function decodeOneLine($line)

{

$idItem = new \Toutiao\Dmp\IdItem();

$idItem->setDataType(\Toutiao\Dmp\IdItem_DataType::IMEI);

$idItem->setId(strtolower($line));

$idItem->setTags('IMEI');

$binaryString = $idItem->serializeToString();

return $binaryString;

}

//获取反序列化的一行

public function decodeOneLine($line)

{

$item = new \Toutiao\Dmp\IdItem();

$item->mergeFromString($line);

return $item->getId();

}

次要为为了上传头条dmp包,然而头条是protobuf2,emmm今天再看吧

未完待续

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值