PHP code example of majorbio / rpc
1. Go to this page and download the library: Download majorbio/rpc library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
majorbio / rpc example snippets
return [
// 进程的名称
'name' => env('RPC_NAME', 'MajorbioRpc'),
// 监听端口
'port' => env('RPC_PORT', 39000),
// 启动进程数量
'count' => env('RPC_WORKER_COUNT', 4),
// RPC 服务文件命名空间
'rpcNameSpace' => '\\App\\Rpc\\',
// 指定 workerman 的 pid 文件
'pidFile' => storage_path() . '/workerman/rpc/workerman.pid',
// 指定 workerman 的 log 文件
'logFile' => storage_path() . '/workerman/rpc/workerman.log',
// 省略 -d 参数
'daemonize' => env('RPC_DAEMONIZE', false),
];
namespace App\Rpc;
use majorbio\helper\RS;
class Calculator
{
public int $a = 1;
public int $b = 2;
/**
* 设置 a
*
* @param int $a
*
* @return void
*/
public function setA(int $a = 0)
{
$this->a = $a;
}
/**
* 设置 b
*
* @param int $a
*
* @return void
*/
public function setB(int $b = 0)
{
$this->b = $b;
}
/**
* 求和
*
* @return RS
*/
public function sum(): RS
{
return new RS(0, 'Calculator-sum', ($this->a + $this->b));
}
/**
* 相乘
*
* @return int
*/
public function multiply(): int
{
return $this->a * $this->b;
}
}
use majorbio\rpc\Client as RpcClient;
// 创建 RpcClient
$rpcClient = new RpcClient('127.0.0.1', 30106);
// 调用 setA 方法(注意传参是个数组)
$rpcClient->invoke('Calculator', 'setA', [5]);
// 调用 setB 方法(注意传参是个数组)
$rpcClient->invoke('Calculator', 'setB', [3]);
// 调用 sum 方法
var_dump($rpcClient->invoke('Calculator', 'sum'));
// 调用 multiply 方法
var_dump($rpcClient->invoke('Calculator', 'multiply'));
$rpcClient->disconnect();
bash
php artisan rpc start