Yii2使用Soap Webservice 的方法

42 篇文章 0 订阅

Soap webservice 简介

Soap是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议
WebService顾名思义就是web服务,web服务主要有两种,一种是基于soap类型的服务,一种是基于rest类型的服务,其中soap类型的服务有两种版本,一种是soap1.1版本,一种是soap1.2版本,soap服务类型的数据是xml数据格式的,而rest服务的数据类型是json格式的。
WSDL(网络服务描述语言)是Web Service的描述语言,也就是说wsdl文件是soap的使用说明书

Yii2中使用Soap WebSerivce 非常简单,有人已经提供了相关的扩展可供我们使用,当然也可以自己写,下面就拿别人写好的扩展来说明怎么在yii2中使用soap

注意:能正常使用soap的前提条件是记得打开PHP的soap扩展

安装soap服务端扩展(SOAP Server Extension)

composer require --prefer-dist mongosoft/yii2-soap-server “*”

a、您需要将[[mongosoft \ soapserver \ Action]]添加到你的控制器。

注意:在你的服务类中,可调用的方法必须是包含’@soap’标签的doc注释块的公共方法

class ApiController extends Controller
{
    /**
     * @inheritdoc
     */
    public function actions()
    {
        return [
            'hello' => 'mongosoft\soapserver\Action', 这样配置之后,就可以通过http://www.myservice.com/api/hello hello即前面的键
        ];
    }

    /**
     * @param string $name
     * @return string
     * @soap   #这里必须是包含'@soap'标签的doc注释块,否则生成的wsdl文件中将不会展示这个方法
     */
    public function getHello($name)
    {
        return 'Hello ' . $name;
    }
}

b、如果你想禁用SoapService的WSDL模式,可以通过serviceOptions参数来设置

/**
     * @inheritdoc
     */
    public function actions()
    {
        return [
            'index' => [
                'class' => 'mongosoft\soapserver\Action',
                'serviceOptions' => [
                    'disableWsdlMode' => true,
                ]
            ]
        ];
    }

安装soap客户端扩展

composer require --prefer-dist mongosoft/yii2-soap-client “*”

a、配置:

'components' => [
    'siteApi' => [
        'class' => 'mongosoft\soapclient\Client',
        'url' => 'http://myservice.com/api/hello',
        'options' => [
            'cache_wsdl' => WSDL_CACHE_NONE,
        ],
    ]
    ...
]

或者也可以直接在代码中使用:

$client = new \mongosoft\soapclient\Client([
     'url' => 'http://myservice.com/api/hello',
 ]);

b、使用

$client = Yii::$app->siteApi;
echo $client->getHello('Alex');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值