Heim > Artikel > Backend-Entwicklung > Bringen Sie Ihnen schnell bei, wie Sie Protobuf in PHP verwenden
protobuf(v3)
in PHP zur Serialisierung und Deserialisierung, welche Schritte von der Installation bis zur Verwendung erforderlich sind und auf welche Probleme geachtet werden sollte. 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
🎜Darüber hinaus ist es auch auf andere Befehle angewiesen, die zuerst installiert werden müssen. Der Pfad zum Herunterladen und Installieren der C-Erweiterung entspricht nicht den Erwartungen (mein扩展
不同版本的
Suchen Sieprotobuf
Installationgoogle/protobuf
aufgithub
, um den Beamten zu finden Quellbibliotheksdokument, suchen Sie das entsprechende PHP-Dokument und arbeiten Sie gemäß dem offiziellen Dokument.
php
verwendet die Bibliotheksinstallation von remi-). php
, und der Pfad ist derselbe wie der Standard des Originalbilds. Nach 🎜🎜 müssen Sie einen Softlink zu protobuf.so
einrichten Sie können composer
verwenden, um Abhängigkeitspakete zu installieren. 🎜🎜 Als nächstes benötigen Sie den Codegenerator protoc
, [Proto-Installation], analysieren die Definitionsdatei *.proto
und generieren den entsprechenden php
-Code Um es in einem Projekt zu verwenden, müssen Sie die Datei composer.json
ändern, um die Konfiguration autoload
hinzuzufügen , Sie können auch manuell require
code> verwenden. 🎜🎜🎜🎜Verwendung🎜🎜Die Verwendung ist hauptsächlich in zwei Punkte unterteilt, einer ist Serialisierung und der andere ist Deserialisierung. [Empfohlen: PHP-Video-Tutorial]🎜rrreeeErweiterung🎜Verschiedene Versionen von protobuf
sind nicht kompatibel. Wenn es sich um eine Versionskonvertierung handelt, können Sie sich auf den Blog [Verwenden von protobuf in PHP] beziehen. PHP-Dokumentation PHP-Dokumentation🎜: https:/ /github.com/protocolbuffers/protobuf/tree/master/php
Das obige ist der detaillierte Inhalt vonBringen Sie Ihnen schnell bei, wie Sie Protobuf in PHP verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!