「Php/composer/grpc」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「==公式== https://cloud.google.com/php/grpc?hl=ja#using-pecl ==インストール== <pre> mkdir php_grpc cd php_grpc curl -sS https://getcomposer.org/installer | php su...」) |
(→実行) |
||
行23: | 行23: | ||
<?php | <?php | ||
require_once __DIR__ . '/vendor/autoload.php'; | require_once __DIR__ . '/vendor/autoload.php'; | ||
+ | </pre> | ||
+ | |||
+ | ==リクエストサンプル== | ||
+ | ===準備=== | ||
+ | composer.json | ||
+ | <pre> | ||
+ | { | ||
+ | "require": { | ||
+ | "grpc/grpc": "^1.38", | ||
+ | "google/protobuf": "^3.17" | ||
+ | }, | ||
+ | "autoload": { | ||
+ | "psr-4": { | ||
+ | "GPBMetadata\\" : "../GPBMetadata/", | ||
+ | "Example\\" : "../Example/" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | ===サンプル=== | ||
+ | <pre>require_once __DIR__ . '/vendor/autoload.php'; | ||
+ | use Example\ExampleClient; | ||
+ | use Example\EchoRequest; | ||
+ | use Example\EchoResponse; | ||
+ | |||
+ | function request(string $requestMessage) | ||
+ | { | ||
+ | $client = new ExampleClient('localhost:50051', [ | ||
+ | 'credentials' => Grpc\ChannelCredentials::createInsecure(), | ||
+ | ]); | ||
+ | $request = new EchoRequest(); | ||
+ | $request->setMessage($requestMessage); | ||
+ | |||
+ | list($reply, $status) = $client->Echo($request)->wait(); | ||
+ | |||
+ | return $reply->getMessage(); | ||
+ | } | ||
+ | echo request('World.')."\n"; | ||
</pre> | </pre> |
2023年10月20日 (金) 09:31時点における版
公式
https://cloud.google.com/php/grpc?hl=ja#using-pecl
インストール
mkdir php_grpc cd php_grpc curl -sS https://getcomposer.org/installer | php sudo pecl install grpc composer.phar require "grpc/grpc:^1.38" composer.phar require "google/protobuf:^3.17" sudo pecl install protobuf
インストール確認
- vendor/grpc
- vendor/google/protobuf
があることを確認
実行
index.php
<?php require_once __DIR__ . '/vendor/autoload.php';
リクエストサンプル
準備
composer.json
{ "require": { "grpc/grpc": "^1.38", "google/protobuf": "^3.17" }, "autoload": { "psr-4": { "GPBMetadata\\" : "../GPBMetadata/", "Example\\" : "../Example/" } } }
サンプル
require_once __DIR__ . '/vendor/autoload.php'; use Example\ExampleClient; use Example\EchoRequest; use Example\EchoResponse; function request(string $requestMessage) { $client = new ExampleClient('localhost:50051', [ 'credentials' => Grpc\ChannelCredentials::createInsecure(), ]); $request = new EchoRequest(); $request->setMessage($requestMessage); list($reply, $status) = $client->Echo($request)->wait(); return $reply->getMessage(); } echo request('World.')."\n";