Heim  >  Artikel  >  Backend-Entwicklung  >  Bringen Sie Ihnen schnell bei, wie Sie Protobuf in PHP verwenden

Bringen Sie Ihnen schnell bei, wie Sie Protobuf in PHP verwenden

藏色散人
藏色散人nach vorne
2021-11-18 14:30:255658Durchsuche
Verwendung von 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.

BetriebsumgebungCentos7.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

扩展

不同版本的protobufInstallation

Suchen Sie google/protobuf auf github, um den Beamten zu finden Quellbibliotheksdokument, suchen Sie das entsprechende PHP-Dokument und arbeiten Sie gemäß dem offiziellen Dokument.

Die Installation im Dokument umfasst zwei Teile: Der eine besteht darin, die C-Erweiterung von protobuf zu installieren, und der andere ist das Abhängigkeitspaket google/protobuf. Verwenden Sie den Befehl pecl, um die C-Erweiterung zu installieren (Sie müssen find / -name pecl verwenden, um sie zu finden, der Installationspfad befindet sich nicht in der Umgebungsvariablen);

🎜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 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 requirecode> verwenden. 🎜🎜🎜🎜Verwendung🎜🎜Die Verwendung ist hauptsächlich in zwei Punkte unterteilt, einer ist Serialisierung und der andere ist Deserialisierung. [Empfohlen: PHP-Video-Tutorial]🎜rrreee
Erweiterung🎜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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen