/**
* @Inject
* @var RpcClient
*/
private $rpclient;
public function rpcTest(Request $request){
$data = [
'class' => 'User',
'method' => 'get',
'args' => [100,'Tom',20], // 100 是 $uid,Tom 是 $name,20 是 $age
];
$buffer = json_encode($data);
$receive_data = $this->rpclient->client($buffer);
return $receive_data;
}
public function rpcNewTest(Request $request){
$new_rpclient = new RpcClient();
$data = [
'class' => 'User',
'method' => 'get',
'args' => [100,'Tom',20], // 100 是 $uid,Tom 是 $name,20 是 $age
];
$buffer = json_encode($data);
$receive_data = $new_rpclient->client($buffer);
return $receive_data;
}
rpcNewTest 可以正常执行,rpcTest 提示没有rpclient 变量。 已经按照文档修改配置config/container.php,并且重启服务了,不知道什么原因。
只有Container::get() Container::make()创建的类实例才能自动注入。
如果你用的是 https://wenda.workerman.net/question/6057 里的RPC例子,想自动注入,把例子中
改成
我这边是参考的https://www.workerman.net/doc/webman#/di这个注入写法,参考 https://wenda.workerman.net/question/6057 这个问题自己封装了一个rpc的client的service想自动注入到这个http的controller里
我写了一个RpcClient对应的是注入文档的Mailer的service,当前贴代码的文件相当于User的controller
已解决