温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php中如何操作使用protobuf

发布时间:2021-11-18 14:39:27 来源:亿速云 阅读:426 作者:iii 栏目:编程语言

这篇文章主要介绍“php中如何操作使用protobuf”,在日常操作中,相信很多人在php中如何操作使用protobuf问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中如何操作使用protobuf”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!                          

概要

在PHP中使用protobuf(v3)进行序列化和反序列化,从安装到使用需要进行哪些步骤,注意哪些问题。

操作环境
Centos7.8
php7.4

安装

github上搜索google/protobuf,找到官方源库文档,找到对应的PHP文档,按照官方文档去进行操作。

文档中安装涉及了两个部分,一个是安装protobuf的C扩展,另一个是依赖包google/protobuf

C扩展的安装使用pecl命令(需要使用find / -name pecl查找,安装的路径并没有在环境变量中);

除此之外还依赖其他的命令需要先行安装,C扩展下载安装的路径不符合预期(我的php使用remi-php的库安装,路径和原始镜像的默认设置不同);

之后需要对protobuf.so建立软链接;

之后使用composer安装依赖包即可。

接下来还需要代码生成器protoc,[proto的安装],解析定义文件*.proto并生成对应php代码,在项目中使用,需要引入对应的代码才可以,需要变更composer.json文件增加autoload配置,如果是测试,也可以手动require

使用

使用主要分为两点,一个是序列化,另一个是反序列化。

$pb=new Demo();
$pb->setName('demo');

//序列化,数据不可看
$string=$pb->serializeToString();

//序列化,数据可看
$string=$pb->serializeToJsonString();

//反序列化
$pb=new Demo();
//从db中获取到的序列化值,反序列化赋值给$pb,然后就可以正常使用
$pb->mergeFromString($string);
$pb->mergeFromJsonString($string);

$pb->getName();//输出demo

到此,关于“php中如何操作使用protobuf”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI