ホームページ  >  記事  >  バックエンド開発  >  PHPでプロトバッファを使用する

PHPでプロトバッファを使用する

步履不停
步履不停オリジナル
2019-06-19 09:48:034431ブラウズ

PHPでプロトバッファを使用する

Protobuf の概要

protobuf (プロトコル バッファー) は、Google によって作成された、クロスプラットフォーム、クロス言語、スケーラブルなデータ転送およびストレージ プロトコルです。圧縮 符号化方式の 1 つ。

プロトコル バッファーは、データをシリアル化する際に柔軟かつ効率的です。 XML と比較すると、プロトコル バッファーは小さく、高速で、シンプルです。処理対象のデータのデータ構造が定義されたら、プロトコル バッファーのコード生成ツールを使用して関連するコードを生成できます。プログラムを再デプロイしなくても、データ構造を更新することもできます。 Protobuf を使用してデータ構造を一度記述すると、構造化データをさまざまな言語で、またはさまざまなデータ ストリームから簡単に読み書きできるようになります。

プロトコル バッファーは、データ ストレージまたは RPC データ交換形式に非常に適しています。言語、プラットフォームに依存しない、拡張可能なシリアル化された構造化データ形式であり、通信プロトコル、データ ストレージ、その他の分野で使用できます。

また、Protobuf はイントラネット上でのデータ交換効率の良さからマイクロサービスで広く利用されており、Google のオープンソース フレームワーク grpc はこれをベースに構築されています。

php-protobuf のインストール

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

インストールlumenandgoogle/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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。