Maison > développement back-end > tutoriel php > Apprenez rapidement à utiliser protobuf en php

Apprenez rapidement à utiliser protobuf en php

藏色散人
Libérer: 2023-04-10 19:54:02
avant
5728 Les gens l'ont consulté
Utilisation de 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.

Environnement d'exploitationCentos7.8

php7.4


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
Copier après la connexion

扩展

不同版本的protobufInstallation

Recherchez google/protobuf sur github pour trouver le fichier officiel Document de la bibliothèque source, recherchez le document PHP correspondant et opérez selon le document officiel.

L'installation dans le document implique deux parties, l'une consiste à installer l'extension C de protobuf et l'autre est le package de dépendances google/protobuf. Utilisez la commande pecl pour installer l'extension C (vous devez utiliser find / -name pecl pour la trouver, le chemin d'installation n'est pas dans la variable d'environnement) ;

🎜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 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 exigercode> 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]🎜rrreee
Extension🎜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!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal