Yii2中使用Soap WebSerivce
- 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扩展
1、首先安装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,
]
]
];
}
2、安装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');
Yii2中使用Soap WebSerivce的更多相关文章
- yii2中如何使用modal弹窗之基本使用
作者:白狼 出处:http://www.manks.top/yii2_modal_baseuse.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...
- Yii2中多表关联查询(join、joinwith)
我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_name ...
- PHP在yii2中封装SuperSlide 幻灯片编写自己的SuperSlideWidget的例子
因为近期给朋友公司做个门户网站,把荒置了6.7年的PHP又重新拾起,发现PHP这些年兴旺多了,很多新的东西看的不明不白,研究了几个框架ZendFramework.thinkphp.Symfony.yi ...
- [moka同学笔记]Yii2中多表关联查询(join、joinwith) (摘录)
表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_name cu ...
- Yii2.0中文开发向导——Yii2中多表关联查询(join、joinwith)(转)
我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_ ...
- Yii2.0中文开发向导——Yii2中多表关联查询(join、joinwith)
我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_ ...
- yii2中的url美化
在yii2中,如果想实现类似于post/1,post/update/1之类的效果,官方文档已经有明确的说明 但是如果想把所有的controller都实现,这里采用yii1的方法 'rules' =&g ...
- 在ASP.NET中使用SOAP Extensions捕获WebService异常
原文:在ASP.NET中使用SOAP Extensions捕获WebService异常 Application_Error不能捕获的异常 [WebMethod] public string Hello ...
- js生成的cookie在yii2中获取不到的解决办法
在js中创建的cookie,默认用yii2中自带的方法Yii::$app->request->cookies->get('abc')获取不到,而用$_COOKIE['abc']又是能 ...
随机推荐
- 《Visual C++ 2010入门教程》系列五:合理组织项目、使用外部工具让工作更有效
原文:http://www.cnblogs.com/Mrt-02/archive/2011/07/24/2115631.html 这一章跟大家分享一些与c++项目管理.VAX.SVN.VS快捷键等方面 ...
- Vue入门基础(火柴)
前言 由于个人十分欣赏博友——小火柴的蓝色理想,他的博文我看了大多数,觉得十分的精彩,然而很多都是看后即忘.我想除了没有经常动手敲代码,更可能是在看的时候忽略了很多细节,因此打算把他的博文通通给“抄袭 ...
- Python学习系列----第四章 函数
4.1 函数定义 函数是python中重要的工具.函数用关键字 def 来定义.def 关键字后跟一个函数的标识符名称,然后跟一对圆括号.圆括号之中可以包括一些变量名,该行以冒号结尾.接下来是一块 ...
- lua 中的上n级模块路径函数分享
--- 得到 lua 模块路径的上 n 级,返回的的字符串结尾有个 "." 字符 -- @usage getUpFloder("math.base.core", ...
- python vscode在centos下安装
对于centos则如下: sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e ...
- lua的local问题
1. 初识 使用Local带来错误.自己写了一个递归的函数,结果报错: local fLocal = function(n) ) then return n; else ) end end )) 错误 ...
- RunDll32.exe 详解及[Windows批处理]清除IE缓存
Rundll32命令详解 文件作用:执行32位DLL文件中的内部函数 位置:X:(当前系统分区)\windows\system32 命令语法: Rundll32.exe DLLname,Functio ...
- Starting MySQL.. ERROR! The server quit without updating PID file (/var/mysql/data/feng.pid). 问题解决方案
1.首先应该想到 授权 chown -R mysql:mysql /var/mysql/data 给mysql 用户 2.vim /etc/my.cnf [mysqld] datadir = /va ...
- python 生成器&迭代器
列表生成式 要生成[1x1, 2x2, 3x3, ..., 10x10]>>> [x * x for x in range(1, 11)]for循环后面还可以加上if判断>&g ...
- C语言main函数的参数
在Windows下使用gcc编译器: 1.首先介绍下MinGW MinGW(Minimalist GNU for Windows),又称mingw32,是将GCC编译器和GNU Binutils移植到 ...