facebook twitter hatena line email

「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";