Heim > Backend-Entwicklung > PHP-Tutorial > Verarbeitung von Protokollpufferdaten in PHP

Verarbeitung von Protokollpufferdaten in PHP

jacklove
Freigeben: 2023-03-27 10:52:02
Original
2473 Leute haben es durchsucht

In diesem Artikel werden Probleme im Zusammenhang mit der Verarbeitung von Protokollpufferdaten in PHP erläutert.

Protocol Buffers ist ein leichtes und effizientes strukturiertes Datenspeicherformat, das für die Serialisierung strukturierter Daten verwendet werden kann und sich sehr gut für die Datenspeicherung oder das RPC-Datenaustauschformat eignet. Es kann als sprachunabhängiges, plattformunabhängiges und erweiterbares serialisiertes strukturiertes Datenformat in Kommunikationsprotokollen, Datenspeicherung und anderen Bereichen verwendet werden. Derzeit werden APIs in drei Sprachen bereitgestellt: C++, Java und Python.

Protokoll-Compiler installieren

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
Nach dem Login kopieren

Installationsüberprüfung:

$ /usr/local/protobuf/bin/protoc  --version
libprotoc 2.5.0
Nach dem Login kopieren

PHP-Erweiterung

PHP-Erweiterung installieren

$ wget https://pecl.php.net/get/protocolbuffers-0.2.6.tgz
$ tar zxvf protocolbuffers-0.2.6.tgz
$ cd protocolbuffers-0.2.6
$ phpize
$ ./configure
$ sudo make 
$ sudo  make install
Nach dem Login kopieren

Fügen Sie in der php.ini-Konfigurationsdatei hinzu: extension = "protocolbuffers.so"

$ php -m | 🎜>

$ mkdir ~/code/app$ cd ~/code/app$ composer require protocolbuffers/protoc-gen-php
Nach dem Login kopieren

Test:

Protodatei schreiben

$ vim demo.proto
syntax = "proto2";
package Proto.Demo;
message OrderInfo {
    required string name = 1 ;
    required int32 age = 2;
    required string amount = 3;
}
message UserInfo {
    required int32 uid = 1;
    required string address = 2;
}
Nach dem Login kopieren

PHP-Klassenbibliothekscode generieren

$ /usr/local/protobuf/bin/protoc --plugin= Vendor/bin /protoc-gen-php --php_out=. -I. demo.proto

Testdateien schreiben:

$ vim demo.proto.php<?phpspl_autoload_register(function($name){  static $classmap;  if (!$classmap) {
    $classmap = array(      &#39;Proto\Demo\OrderInfo&#39; => &#39;/Proto/Demo/OrderInfo.php&#39;,      &#39;Proto\Demo\UserInfo&#39; => &#39;/Proto/Demo/UserInfo.php&#39;,      // @@protoc_insertion_point(autoloader_scope:classmap)
    );
  }  if (isset($classmap[$name])) {    require __DIR__ . DIRECTORY_SEPARATOR . $classmap[$name];
  }
});
call_user_func(function(){
  $registry = \ProtocolBuffers\ExtensionRegistry::getInstance();  // @@protoc_insertion_point(extension_scope:registry)});
$oi = new Proto\Demo\OrderInfo();
$oi->setName(&#39;Jack&#39;);
$oi->setAge(28);
$oi->setAmount(&#39;500&#39;);//压缩数据$protoData = $oi->serializeToString();
var_dump("压缩数据:");
var_dump($protoData);//获取到$age的值$obj = Proto\Demo\OrderInfo::parseFromString($protoData);
var_dump("获取数据:");
var_dump($obj->getName());
var_dump($obj->getAge());
var_dump($obj->getAmount());
Nach dem Login kopieren

Testen

$ php demo.proto.php 
string(15) "压缩数据:"string(13) "
Jack500"string(15) "获取数据:"string(4) "Jack"string(2) "28"string(3) "500"
Nach dem Login kopieren
Dieser Artikel erklärt PHP-bezogene Inhalte zur Verarbeitung von Protokollpufferdaten. Weitere Informationen zu diesem Thema finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Über die PHP Express-Abfrageklasse

PHP sendet XML-Daten über Curl und erhält XML-Daten

PHP generiert perfekt Word-Dokumente und HTML-Elemente können hinzugefügt werden

Das obige ist der detaillierte Inhalt vonVerarbeitung von Protokollpufferdaten in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage