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