protobuf (プロトコル バッファー) は、Google によって作成された、クロスプラットフォーム、クロス言語、スケーラブルなデータ転送およびストレージ プロトコルです。圧縮 符号化方式の 1 つ。
プロトコル バッファーは、データをシリアル化する際に柔軟かつ効率的です。 XML と比較すると、プロトコル バッファーは小さく、高速で、シンプルです。処理対象のデータのデータ構造が定義されたら、プロトコル バッファーのコード生成ツールを使用して関連するコードを生成できます。プログラムを再デプロイしなくても、データ構造を更新することもできます。 Protobuf を使用してデータ構造を一度記述すると、構造化データをさまざまな言語で、またはさまざまなデータ ストリームから簡単に読み書きできるようになります。
プロトコル バッファーは、データ ストレージまたは RPC データ交換形式に非常に適しています。言語、プラットフォームに依存しない、拡張可能なシリアル化された構造化データ形式であり、通信プロトコル、データ ストレージ、その他の分野で使用できます。
また、Protobuf はイントラネット上でのデータ交換効率の良さからマイクロサービスで広く利用されており、Google のオープンソース フレームワーク grpc はこれをベースに構築されています。
protobuf は php をネイティブでサポートしていないため、php が pb を使用する場合は、対応する拡張機能をインストールする必要があります。
pecl install protobuf
環境には 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- protobuf は正常にインストールされました
php --ri protobuf
lumen new rpc
lumen new rpc
コマンドは同等ですcomposer create-project laravel/lumen rpc
composer require google/protobuf
Add classmap under composer.json
:
{ "classmap": [ "protobuf/" ] }
ok、準備はすべて完了しました。
コード ディレクトリに protobuf フォルダーを作成しますmkdir protobuf
ディレクトリに入り、ファイル searchRequest を作成します。プロト
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; }
以上がPHPでプロトバッファを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。