ホームページ >バックエンド開発 >PHPチュートリアル >PHP8.1 で導入された新しい GRPC 拡張機能
PHP8.1 で導入された新しい GRPC 拡張機能
PHP は、Web サーバーと対話することで Web ページのコンテンツを動的に生成できる、広く使用されているサーバーサイド スクリプト言語です。最新のサービス アーキテクチャのニーズにさらに応えるために、PHP8.1 バージョンでは新しい GRPC 拡張機能が導入され、PHP のパフォーマンスとスケーラビリティがさらに向上しました。この記事では、GRPC 拡張機能の基本概念を紹介し、読者がこの新機能をより深く理解し、適用できるようにいくつかのコード例を示します。
1. GRPC の概要
GRPC は、高性能で汎用的なオープン ソース RPC (リモート プロシージャ コール) フレームワークです。 RPC は、基盤となるネットワークの詳細を知らなくても、プログラムが別のコンピューター上の関数やメソッドを直接呼び出すことを可能にするコンピューター通信プロトコルです。 GRPC は、Google のオープン ソース HTTP/2 プロトコル実装に基づいており、次の特性を持つバイナリ送信プロトコルを使用します:
2. GRPC 拡張機能のインストール
GRPC の使用を開始する前に、まず GRPC 拡張機能をインストールする必要があります。 PHP8.1 では、GRPC 拡張機能のサポートがデフォルトで提供されており、次の手順でインストールできます。 GRPC 拡張機能: PECL を使用します。 GRPC 拡張モジュールをインストールするコマンドは次のとおりです。
pecl install grpc
extension=grpc
まず、インターフェースのデータ構造とメソッドを記述するインターフェース ファイル (.proto ファイル) を定義する必要があります。たとえば、SayHello メソッドを含む Greeter インターフェイスを定義します。
syntax = "proto3"; service Greeter { rpc SayHello (HelloRequest) returns (HelloResponse) {} } message HelloRequest { string name = 1; } message HelloResponse { string message = 1; }
次に、GRPC が提供するコード生成ツールを使用して、以下に基づいて対応するコードを生成します。 .proto ファイル クライアント側とサーバー側のコード。まず、プロトコル バッファー ツールをインストールし、次のコマンドを実行してコードを生成する必要があります。
protoc --php_out=./out --grpc_out=./out --plugin=protoc-gen-grpc=/usr/local/bin/grpc_php_plugin greeter.proto上記のコマンドを実行すると、生成された PHP コード ファイルを含む out ディレクトリが生成されます。
サーバー側の実装
class GreeterImpl extends GreeterGreeterService { public function SayHello(GreeterHelloRequest $request): GreeterHelloResponse { $response = new GreeterHelloResponse(); $response->setMessage("Hello, " . $request->getName()); return $response; } }
$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();
$client = new GreeterGreeterClient('127.0.0.1:50051'); $request = new GreeterHelloRequest(); $request->setName("PHP"); $response = $client->SayHello($request); echo $response->getMessage();
概要
GRPC 拡張機能は、PHP8.1 バージョンで導入された重要な機能であり、PHP がより効率的でスケーラブルな RPC 機能を実現できるようになります。コード例を通じて、GRPC 拡張機能の基本的な概念と使用法を理解しました。読者がこの新機能をさらに学習して適用し、PHP 開発能力を向上できることを願っています。
以上がPHP8.1 で導入された新しい GRPC 拡張機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。