您现在的位置是:首页 > PHP框架交流PHP框架交流

php yar扩展实现rpc调用

上善若水2022-03-09 18:35:57【PHP框架交流】 7634人已围观

简介php使用yar使用扩展进行rpc调用,以最大程度实现程序的解耦,类似java微服务互相调用.是一个不错的方式,简单使用rpc使用.yar使用文档:https://www.php.net/manual

php使用yar使用扩展进行rpc调用,以最大程度实现程序的解耦,类似java微服务互相调用.是一个不错的方式,简单使用rpc使用.
yar使用文档:https://www.php.net/manual/zh/yar.installation.php
1.第一步安装yar扩展
这一步我就已经踩坑,由于我的用的是phpstudy安装的yar扩展,直接下载好扩展后,拖到ext目录,测试死活安装不成功,把php7.2版本卸载后再安装依旧无法安装.再确认后认为无误后,使用phpstudy的php7.3很顺利的安装上扩展.可能就是phpstudy的这个7.2版本有些许问题吧. 提示无法定位程序输入点SSL_CTX_set_post_handshake_auth 于动态链接库D:\phpstudy_pro\Extensions\php\php7.2.9nts\ext\php_yar.dll 上.
上详细步骤.当前环境为php7.3 由于yar依赖于msgpack 我们需要同时安装这个两个扩展.

先下载 https://pecl.php.net/package/msgpack/2.1.2/windows 的 7.3 Non Thread Safe (NTS) x64
再下载 https://pecl.php.net/package/yar/2.1.2/windows 的 7.3 Non Thread Safe (NTS) x64
我的phpstudy下载安装目录为D:\phpstudy_pro
解压php_msgpack.dll 和php_yar.dll 到 D:\phpstudy_pro\Extensions\php\php7.3.4nts\ext
编辑D:\phpstudy_pro\Extensions\php\php7.3.4nts\php.ini 追加

extension=msgpack
extension=yar

然后 D:/phpstudy_pro/Extensions/php/php7.3.4nts/php -m 输入已安装的扩展 检查是不是有yar 扩展成功安装

2.新建两个网站来模拟不同程序之间的调用.

a.com代表提供服务的Yar_Server
新建一个index.php文件

<?php

class Service
{
    /**
     * @param $name
     * @return string
     */
    public function hello($name = 'test')
    {
        return 'hello rpc!' . $name;
    }

    /**
     * @param $name 名字
     * @return string
     */
    public static function helloB($name)
    {
        return 'hello' . $name . ' rpc!';
    }

    protected static function helloProtected()
    {
        return 'hello protected';
    }
}

$ob = new \ReflectionClass($_GET['class'] ?? 'Service');
$class = $ob->getName();
$server = new \Yar_Server(new $class());
return $server->handle();

再项目2新建index.php

<?php
$object = new \Yar_Client('http://a.com/');
$object->SetOpt(YAR_OPT_CONNECT_TIMEOUT, 10000);
$object->SetOpt(YAR_OPT_TIMEOUT, 10000);
echo $object->hello();

3.访问服务端

访问调用的客户段

很赞哦! (2)

相关文章

文章评论

站点信息

  • 建站时间:2019-10-24
  • 网站程序:Thinkphp6 Layui
  • 文章统计247篇文章
  • 标签管理标签云
  • 统计数据cnzz统计
  • 微信公众号:扫描二维码,关注我们