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

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

步履不停
リリース: 2023-02-23 08:14:02
オリジナル
4436 人が閲覧しました

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

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート