php中使用gRPC
php需要安装grpc扩展。
使用protoc命令生成对应的php代码:
protoc --php_out=plugins=grpc:./ exporttask.proto
生成代码包括:
Exporttask/
|-WshExportFormat.php
|-WshExportTaskCreateTplReq.php
|-WshExportTaskCreateTplRes.php
|-WshExportTaskListTplReq.php
|-WshExportTaskListTplRes.php
|-WshExportTpl.php
\-WshExportTplStatus.php
GPBMetadata/
\-Exporttask.php
每一个message对应生成一个类,在Exporttask命名空间下。
这里就不都贴出来了,只贴一个WshExportTpl.php:
<?php
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: exporttask.proto
namespace Exporttask;
use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;
/**
* Protobuf type <code>exporttask.WshExportTpl</code>
*/
class WshExportTpl extends \Google\Protobuf\Internal\Message
{
/**
* <code>string etplName = 1;</code>
*/
private $etplName = '';
/**
* <code>string etplTag = 2;</code>
*/
private $etplTag = '';
/**
* <code>.exporttask.WshExportFormat etplOutputFormat = 3;</code>
*/
private $etplOutputFormat = 0;
/**
* <code>string etplOutputColumns = 4;</code>
*/
private $etplOutputColumns = '';
/**
* <code>string etplExpr = 5;</code>
*/
private $etplExpr = '';
/**
* <code>int32 etplId = 6;</code>
*/
private $etplId = 0;
/**
* <code>int32 etplExecTimes = 7;</code>
*/
private $etplExecTimes = 0;
/**
* <code>int32 etplExecOkTimes = 8;</code>
*/
private $etplExecOkTimes = 0;
/**
* <code>int32 etplStatus = 9;</code>
*/
private $etplStatus = 0;
/**
* <code>string etplCreated = 10;</code>
*/
private $etplCreated = '';
/**
* <code>string etplUpdated = 11;</code>
*/
private $etplUpdated = '';
/**
* <code>string etplDeleted = 12;</code>
*/
private $etplDeleted = '';
/**
* <code>int32 operatorId = 13;</code>
*/
private $operatorId = 0;
public function __construct() {
\GPBMetadata\Exporttask::initOnce();
parent::__construct();
}
/**
* <code>string etplName = 1;</code>
*/
public function getEtplName()
{
return $this->etplName;
}
/**
* <code>string etplName = 1;</code>
*/
public function setEtplName($var)
{
GPBUtil::checkString($var, True);
$this->etplName = $var;
}
// ... 其他省略
<?php
$client = new \Exporttask\GreeterClient('127.0.0.1:50051', [
'credentials' => \Grpc\ChannelCredentials::createInsecure(),
]);
$request = new Exporttask\WshExportTaskCreateTplReq();
$request->setEtplName($name);
list($reply, $status) = $client->createTpl($request)->wait();
$message = $reply->getMessage();
var_dump($message);
grpc 使用方法
最新推荐文章于 2022-10-28 19:36:30 发布