Protobuf (Protokollpuffer) ist ein plattformübergreifendes, sprachübergreifendes, skalierbares Datenübertragungs- und Speicherprotokoll, das von Google entwickelt wurde Komprimierung Eine der Kodierungsmethoden.
Protokollpuffer sind flexibel und effizient bei der Serialisierung von Daten. Im Vergleich zu XML sind Protokollpuffer kleiner, schneller und einfacher. Sobald die Datenstruktur der zu verarbeitenden Daten definiert ist, kann das Codegenerierungstool der Protokollpuffer verwendet werden, um den entsprechenden Code zu generieren. Datenstrukturen können sogar aktualisiert werden, ohne das Programm erneut bereitzustellen. Verwenden Sie Protobuf, um Ihre Datenstruktur einmal zu beschreiben, und Ihre strukturierten Daten können problemlos in einer Vielzahl verschiedener Sprachen oder aus einer Vielzahl unterschiedlicher Datenströme gelesen und geschrieben werden.
Protokollpuffer eignen sich sehr gut für Datenspeicher- oder RPC-Datenaustauschformate. Ein sprachunabhängiges, plattformunabhängiges und erweiterbares serialisiertes strukturiertes Datenformat, das in Kommunikationsprotokollen, Datenspeicherung und anderen Bereichen verwendet werden kann.
Darüber hinaus wird Protobuf aufgrund seiner effizienten Datenaustauscheffizienz im Intranet häufig in Microservices eingesetzt. Das darauf basierende Open-Source-Framework grpc von Google.
Da Protobuf PHP nicht nativ unterstützt, müssen Sie die entsprechende Erweiterung installieren, wenn PHP pb verwendet.
pecl install protobuf
Der protoc
-Compiler ist in der Umgebung erforderlich. Herunterladen und installieren:
$ wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz $ tar zxvf protobuf-2.5.0.tar.gz $ cd protobuf-2.5.0 $ ./configure --prefix=/usr/local/protobuf $ sudo make $ sudo make install
Überprüfen Sie, ob die Installation erfolgreich war:
$ /usr/local/protobuf/bin/protoc --version libprotoc 2.5.0
php-protobuf wurde erfolgreich installiert
php --ri protobuf
lumen new rpc
lumen new rpc
Der Befehl entspricht dem Befehlcomposer create-project laravel/lumen rpc
composer require google/protobuf
hinzufügen Klassenplan unter composer.json
:
{ "classmap": [ "protobuf/" ] }
ok, die Vorbereitungen sind alle abgeschlossen.
Erstellen Sie einen Protobuf-Ordner im Codeverzeichnismkdir protobuf
Geben Sie das Verzeichnis ein und erstellen Sie eine DateisearchRequest.proto
syntax = "proto3"; message SearchRequest { string query = 1; int32 page_number = 2; int32 result_per_page = 3; enum Corpus { UNIVERSAL = 0; WEB = 1; IMAGES = 2; LOCAL = 3; NEWS = 4; PRODUCTS = 5; VIDEO = 6; } Corpus corpus = 4; }
Das obige ist der detaillierte Inhalt vonVerwendung von Protobuffer in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!