Yar

简介

Yar 是一个轻量级, 高效的RPC框架, 它提供了一种简单方法来让PHP项目之间可以互相远程调用对方的本地方法. 并且Yar也提供了并行调用的能力. 可以支持同时调用多个远程服务的方法.

**需求 **

如果需要使用Msgpack作为打包协议, 则需要在configure的时候加上--enable-msgpack, 并且要保证Msgpack扩展也安装到PHP内.

运行时配置

  • yar.packager string 设置Yar的打包工具, 可以是PHP(serialize), JSON, Msgpack(这个需要编译的时候指定--enable-msgpack).

  • yar.debug string 打开的时候, Yar会把请求过程的日志都打印出来(到stderr).

  • yar.connect_timeout integer 连接超时(毫秒为单位)

  • yar.timeout integer 处理超时(毫秒为单位)

  • yar.expose_info bool 如果关闭, 则当通过浏览器访问Server的时候, 不会出现Server Info信息.

Yar Server示例


_add($a, $b);
    }

    /**
     * Sub 
     */
    public function sub($a, $b) {
        return $a - $b;
    }

    /**
     * Mul
     */
    public function mul($a, $b) {
        return $a * $b;
    }

    /**
     * Protected methods will not be exposed
     * @param interge 
     * @return interge
     */
    protected function _add($a, $b) {
        return $a + $b;
    }
}

$server = new Yar_Server(new Operator());
$server->handle();
?>

通过浏览器访问(GET请求)

4fd86c7f1b197d1d954ad0f4b033dc93-yar.png

** Yar Client示例**

add(1, 2));

/* call via call */
var_dump($client->call("add", array(3, 2)));


/* __add can not be called */
var_dump($client->_add(1, 2));
?>

** Yar Concurrent Client示例**


你可能感兴趣的:(Yar)