yii2 web service plugin 使用及安装说明

1 篇文章 0 订阅
1 篇文章 0 订阅

yii2 web service plugin 使用及安装说明(前面有一点英文后面都是中文)

=================

Installation

这里用的是这个插件的官方介绍,并且作了一些改变,请注意看细节,本编是中文编写,只是前面引用了一点官方的介绍文档
The preferred way to install this extension is through composer.

To install, either run

$ php composer.phar require conquer/services "*"

or add

"conquer/services": "*"

to the require section of your composer.json file.

Usage

namespace app\controllers;

class SiteController extends \yii\web\Controller
{
    public function actions()
    {
        return [
            'soap' => [
                'class' => 'conquer\services\WebServiceAction',
                'classMap' => [
                    'MyClass' => 'app\controllers\MyClass'
                ],
            ],
        ];
    }

    /**
     * @param string $str
     * @return mixed
     * @soap
     */
    public function soapTest($str)
    {
        return $str;
    }

    /**
      * 上面就是服务器的配置
      * 为了方便,我就在一台机器上做测试了,演示我的demo
      * 下面开始写访问者的代码了
      */

      public function actionIndex()
    {
    /**
     * 首先, 需要new soapClient的对象,对象里面传服务器的 wsdl的url,
     * 这个url 怎么生成的,在下面的文字说明里面有提到
     * 其次,调用服务定义好的接口方法,由上面服务器的配置,我们可以知道
     * 我定义的接口方法就是soapTest
     * 然后,正常情况下,应该是运行了,但是如果由问题请注意我下面列出的问题,以及解决方案
     */
    $client=new SoapClient('http://www.qmerp.com/index.php?r=site%2Fsoap');
    echo $client->soapTest('hello world');
//        $result = $client->__getFunctions();
//        var_dump($result);
    }
}

以上是我根据这个插件提供的使用指南

注意事项
- 首先,需要在actions里面,注册好一个这个插件提供的aciton方法,这个方法会搭建一个
webservice 服务,并且会生成一个wsdl url(这里我们可以知道这个url就是访问这个action的url, site/soap, 我的生成的地址为: http://www.qmerp.com/index.php?r=site%2Fsoap), 以及一个wsdl 的dom结构(这个结构是根据
相关的操作生成的,具体怎么生成,下面细讲)
- 其次,写一个接口方法,供访问者使用 我们这里写的接口方法是soapTest(str);在写这个接口方法需要特别注意
这个方法的注释,
- 第一个坑注释里面必须要由 @soap这个东西,如果没有,客户端是没有办法调用到这个接口方法的,会报一个
错误信息翻译过来就是:这个方法没有, 这个坑坑了我好几个小时,网上各种找文档都没有解决方案。
- 第二个坑就是:当你注释里面由这一段,但还是告诉你没有这个方法的时候,你的内心是崩溃的,但是当你看到这个文档时候
你就不用担心这个问题了, 请到php.ini里面 找到 ‘;opcache.save_comments=1’,把前面的分号去掉,这个操作可以
理解为,不要去掉程序里面的注释 , 现在你应该明白为啥加了注释还是没有效果了吗?
- 第三个坑是: 怎么传递参数,由的同学可能在传递参数这个环节出问题,传递参数的时候也要特别注意注释的写法,
正确的而写法格式应该是 ’ @param xxx(这里是参数类型,这个很重要)$str ‘, 因为中间没有这个参数类型的话,你也是没有办法
调用到这个接口方法的,最重要的是 @param 一定要有, 其次 还需要 xxx(这个字符串,这里面不能包含除了单字符以外的字符) 然后
接上你的参数就可以了
- 另外如果是什么包,库没有安装的,请自行百度或者google解决
- 如果还有遇到其他坑的,可以在下面留言交流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值