facebook twitter hatena line email

Php/composer/grpc

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

(注意:途中です)

公式

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

protocでphp作成

protoc ./proto/example.proto --php_out=./php --grpc_out=./php --plugin=protoc-gen-grpc=/usr/local/bin/grpc_php_plugin


作成中・・・