この記事では、PHP でのプロトコル バッファー データの処理に関連する問題について説明します。
プロトコル バッファーは、構造化データのシリアル化に使用できる軽量で効率的な構造化データ ストレージ形式であり、データ ストレージまたは RPC データ交換形式に非常に適しています。これは、通信プロトコル、データ ストレージ、その他の分野で、言語、プラットフォームに依存しない、拡張可能なシリアル化された構造化データ形式として使用できます。現在、C++、Java、Python の 3 つの言語の API が提供されています。
protocコンパイラーをインストールします
ダウンロードしてインストールします
$ 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
インストールの検証:
$ /usr/local/protobuf/bin/protoc --version libprotoc 2.5.0
php extension
php extensionをインストールします
$ 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
php.ini設定ファイルに追加します: extension = "protocolbuffers.so"
$ php -m | grep プロトコルバッファー
プロトコルバッファー
プロトコルプラグイン
$ mkdir ~/code/app$ cd ~/code/app$ composer require protocolbuffers/protoc-gen-php
テスト:
プロトファイルを書き込む
$ 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; }
PHPクラスライブラリコードを生成する
$ /usr/local/protobuf/bin/protoc --plugin= vendor/bin/protoc -gen-php --php_out=. -I.demo.proto
テストファイルを書きます:
$ vim demo.proto.php<?phpspl_autoload_register(function($name){ static $classmap; if (!$classmap) { $classmap = array( 'Proto\Demo\OrderInfo' => '/Proto/Demo/OrderInfo.php', 'Proto\Demo\UserInfo' => '/Proto/Demo/UserInfo.php', // @@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('Jack'); $oi->setAge(28); $oi->setAmount('500');//压缩数据$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());
Test
$ php demo.proto.php string(15) "压缩数据:"string(13) " Jack500"string(15) "获取数据:"string(4) "Jack"string(2) "28"string(3) "500"
この記事では、PHP でのプロトコル バッファー データの処理に関連する内容について説明します。関連知識については、php 中国語 Web サイトに注意してください。
関連する推奨事項:
php は、curl を介して XML データを送信し、XML データを取得します
PHP は Word ドキュメントを完全に生成し、HTML 要素を追加できます
以上がPHP でのデータの処理プロトコル バッファーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。