protobuf(v3)
en PHP pour la sérialisation et la désérialisation, quelles sont les étapes requises depuis l'installation jusqu'à l'utilisation et quels problèmes doivent être pris en compte. 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
。
使用
使用主要分为两点,一个是序列化,另一个是反序列化。【推荐:PHP视频教程】
$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
🎜De plus, il s'appuie également sur d'autres commandes qui doivent être installées en premier. Le chemin de téléchargement et d'installation de l'extension C ne répond pas aux attentes (mon扩展
不同版本的
Recherchezprotobuf
Installationgoogle/protobuf
surgithub
pour trouver le fichier officiel Document de la bibliothèque source, recherchez le document PHP correspondant et opérez selon le document officiel.
php
utilise l'installation de la bibliothèque de remi-. php
, et le chemin est le même que celui par défaut de l'image originale. Après 🎜🎜, vous devez établir un lien logiciel vers protobuf.so
; vous pouvez utiliser composer
pour installer les packages de dépendances. 🎜🎜 Ensuite, vous avez besoin du générateur de code protoc
, [installation du proto], analysez le fichier de définition *.proto
et générez le code php
correspondant , Pour l'utiliser dans un projet, vous devez introduire le code correspondant. Vous devez modifier le fichier composer.json
pour ajouter la configuration autoload
. , vous pouvez également exiger
code> manuellement. 🎜🎜🎜🎜Utilisation🎜🎜L'utilisation est principalement divisée en deux points, l'un est la sérialisation et l'autre la désérialisation. [Recommandé : Tutoriel vidéo PHP]🎜rrreeeExtension🎜Les différentes versions de protobuf
ne sont pas compatibles. Si cela implique une conversion de version, vous pouvez vous référer au blog [Utiliser protobuf en php] Documentation PHP Documentation PHP🎜 : https:/ /github.com/protocolbuffers/protobuf/tree/master/php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!