ホームページ  >  記事  >  バックエンド開発  >  PHP8.1 で導入された新しい GRPC 拡張機能

PHP8.1 で導入された新しい GRPC 拡張機能

WBOY
WBOYオリジナル
2023-07-08 18:57:072106ブラウズ

PHP8.1 で導入された新しい GRPC 拡張機能

PHP は、Web サーバーと対話することで Web ページのコンテンツを動的に生成できる、広く使用されているサーバーサイド スクリプト言語です。最新のサービス アーキテクチャのニーズにさらに応えるために、PHP8.1 バージョンでは新しい GRPC 拡張機能が導入され、PHP のパフォーマンスとスケーラビリティがさらに向上しました。この記事では、GRPC 拡張機能の基本概念を紹介し、読者がこの新機能をより深く理解し、適用できるようにいくつかのコード例を示します。

1. GRPC の概要
GRPC は、高性能で汎用的なオープン ソース RPC (リモート プロシージャ コール) フレームワークです。 RPC は、基盤となるネットワークの詳細を知らなくても、プログラムが別のコンピューター上の関数やメソッドを直接呼び出すことを可能にするコンピューター通信プロトコルです。 GRPC は、Google のオープン ソース HTTP/2 プロトコル実装に基づいており、次の特性を持つバイナリ送信プロトコルを使用します:

  1. 効率的なシリアル化と逆シリアル化: GRPC は、デフォルトのシリアル化メカニズムとしてプロトコル バッファーを使用します。 JSON や XML などのテキスト形式。
  2. 信頼性の高いストリーミング: GRPC は双方向ストリーミングをサポートしており、単一のネットワーク接続上で複数の独立した要求と応答を同時に行うことができます。
  3. 多言語サポート: GRPC は、C、Java、Go、Python などの複数のプログラミング言語をサポートします。
  4. 自動化ツール: GRPC は、さまざまなプログラミング言語のクライアント側およびサーバー側のコードを生成できる豊富なコード生成ツールを提供します。

2. GRPC 拡張機能のインストール
GRPC の使用を開始する前に、まず GRPC 拡張機能をインストールする必要があります。 PHP8.1 では、GRPC 拡張機能のサポートがデフォルトで提供されており、次の手順でインストールできます。 GRPC 拡張機能: PECL を使用します。 GRPC 拡張モジュールをインストールするコマンドは次のとおりです。

pecl install grpc
  1. php.ini ファイルで GRPC 拡張機能を有効にします。 次の構成を php.ini に追加します。ファイル:
  2. extension=grpc

  3. 3. GRPC 拡張機能の使用
  4. インストールが完了したら、GRPC 拡張機能を使用してリモート プロシージャ コールを行うことができます。以下に、GRPC 拡張機能の使用方法を示す簡単な例を示します。

インターフェースを定義する

まず、インターフェースのデータ構造とメソッドを記述するインターフェース ファイル (.proto ファイル) を定義する必要があります。たとえば、SayHello メソッドを含む Greeter インターフェイスを定義します。

syntax = "proto3";

service Greeter {
  rpc SayHello (HelloRequest) returns (HelloResponse) {}
}

message HelloRequest {
  string name = 1;
}

message HelloResponse {
  string message = 1;
}

  1. コードの生成

    次に、GRPC が提供するコード生成ツールを使用して、以下に基づいて対応するコードを生成します。 .proto ファイル クライアント側とサーバー側のコード。まず、プロトコル バッファー ツールをインストールし、次のコマンドを実行してコードを生成する必要があります。

    protoc --php_out=./out --grpc_out=./out --plugin=protoc-gen-grpc=/usr/local/bin/grpc_php_plugin greeter.proto

    上記のコマンドを実行すると、生成された PHP コード ファイルを含む out ディレクトリが生成されます。

  2. サーバー側の実装

    次に、サーバー側のコードを実装します。コードでは、インターフェイスによって定義されたメソッドを実装する必要があります。例:

    class GreeterImpl extends GreeterGreeterService
    {
     public function SayHello(GreeterHelloRequest $request): GreeterHelloResponse
     {
         $response = new GreeterHelloResponse();
         $response->setMessage("Hello, " . $request->getName());
         return $response;
     }
    }

  3. #サーバーの起動
  4. 次のコードを通じて GRPC サーバーを起動し、指定されたポートをリッスンできます:

    $server = new SwooleServer('0.0.0.0', 50051, SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL);
    $server->set([
     'ssl_cert_file' => 'server.crt',
     'ssl_key_file' => 'server.key',
    ]);
    $server->on("start", function (SwooleServer $server) {
     echo "GRPC server is started at 0.0.0.0:50051
    ";
    });
    $server->on("receive", function (SwooleServer $server, $fd, $fromId, $data) {
     $server->send($fd, $data);
    });
    $server->start();

  5. クライアント呼び出し
  6. 最後に、ネットワーク経由でリモート サーバー上のメソッドを呼び出すクライアント コードを作成できます。例:

    $client = new GreeterGreeterClient('127.0.0.1:50051');
    $request = new GreeterHelloRequest();
    $request->setName("PHP");
    $response = $client->SayHello($request);
    echo $response->getMessage();

  7. 上記のコード例を通じて、GRPC 拡張機能を使用して PHP8.1 でリモート プロシージャ コールを行う方法を学習できます。 GRPC 拡張機能は、より効率的で信頼性の高いリモート通信方法を提供し、最新の分散システムの構築に役立ちます。実際のプロジェクトでは、GRPC 拡張機能を柔軟に使用して、ビジネス ニーズに基づいて言語を超えたマイクロサービス アーキテクチャを構築できます。
  8. 概要
    GRPC 拡張機能は、PHP8.1 バージョンで導入された重要な機能であり、PHP がより効率的でスケーラブルな RPC 機能を実現できるようになります。コード例を通じて、GRPC 拡張機能の基本的な概念と使用法を理解しました。読者がこの新機能をさらに学習して適用し、PHP 開発能力を向上できることを願っています。

以上がPHP8.1 で導入された新しい GRPC 拡張機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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