tp框架 yar扩展rpc调用

1.安装yar扩展,根据使用的php版本进行下载

https://pecl.php.net/package/yar
https://pecl.php.net/package/msgpack

2.解压php_msgpack.dll 和php_yar.dll 到 php配置 ext 目录下

3.在对应的php.ini 下添加

extension=msgpack
extension=yar

4.查看扩展是否安装

 5.说用phpstudy添加两个站点

 6.tp5.0后去除了内置的yar类,可以自己手动添加上

<?php

abstract class Yar
{

    /**
     * 构造函数
     * @access public
     */
    public function __construct() {
        //控制器初始化
        if (method_exists($this, '_initialize')) {
            $this->_initialize();
        }

        //判断扩展是否存在
        if (!extension_loaded('yar')) {
            throw new \Exception('not support yar');
        }

        //实例化Yar_Server
        $server = new \Yar_Server($this);
        // 启动server
        $server->handle();
    }

    /**
     * 魔术方法 有不存在的操作的时候执行
     * @access public
     * @param string $method 方法名
     * @param array $args 参数
     * @return mixed
     */
    public function __call($method, $args) {
    }
}

7.站点 rpca.com 代表提供 Yar_Server,新建一个控制器

<?php

namespace app\controller;

use Yar;
class RpcServe extends Yar
{
    /**
     * 这里是测试,描述
     * @params string $name 参数
     * @return string 返回参数
     */
    public function test($name = 'yar') {

        return 'hello '.$name;
    }

}

8.在浏览器 输入  http://rpca.com/RpcServe ,显示以下表示成功

 

 9.在站点rcpb.com 下建立客户端,进行调用 rcpa.com 的方法

<?php

namespace app\controller;

use app\BaseController;

class Index extends BaseController
{

    public function test() {
        $client = new \Yar_Client('http://rpca.com/RpcServe');
        echo $client->test('小猪');
        die;
    }
}

10.在浏览器输入 http://rpcb.com/index/test ,调用成功

 

posted @ 2023-02-02 13:51  小猪哥哥  阅读(126)  评论(0编辑  收藏  举报