该【虚拟主机问题PHPSOAP扩展PHPSOAP扩展详解要点 】是由【春天资料屋】上传分享,文档一共【3】页,该文档可以免费在线阅读,需要了解更多关于【虚拟主机问题PHPSOAP扩展PHPSOAP扩展详解要点 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
1/3
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
虚假主机问题之PHP_SOAP_扩展_PHPSOAP扩展详解
PHP
SOAP扩展[kuozhan]
SOAP
的全称为简单对象[dui
xiang][dan
dui
xiang]接见协议[xieyi]
(Simple
ObjectAccess
Protocol)。它是一种鉴于XML
的,可扩展[kuozhan]的[kekuozhande]通信[tongxin]协议[xie
yi][tongxinxieyi]
。SOAP供应了一种标准,使得运行
[yunhang]在不同样
平台[pingtai]上
并使用不同样的编程[biancheng]
语言[yu
yan]
编写的
应用[yingyong]
程序能够互相进
行通信[tongxin]。SOAP
的可扩展[kuozhan]性[kekuozhanxing]和平台[pingtai]没关性使得
它被宽泛用作
Web
服务
的通信[tongxin]协议[xieyi][tongxinxieyi]
。
由于java语言[yuyan]供应了对
SOAP
的优秀支持[zhichi],平常鉴于
Web服务的应用
[yingyong]程序[yingyongchengxu]
使用Java语言[yuyan]编写。关于广大的
PHP程序员
[chengxuyuan]来说,可能会有一点小小的不满
–PHP的较早版本根本没有对
SOAP的直
接支持[zhichi],只能经过
PEAR(thePHPExtensionandApplicationRepository)
中的SOAP
库或许第三方[di
sanfang]产品NuSOAP
来
开发
Web服务。可是近来的版本已经改变
了这一情况。自
PHP5开始新增了内置的
SOAP扩展[kuozhan](ext/soap),此后我们不需
要下载[xiazai]额外的扩展[kuozhan]库或是
代码[daima]
包来开发鉴于
SOAP的应用
[yingyong]程序[yingyongchengxu]
了。接下来让我们来看看
SOAP
扩展[kuozhan]中都有
哪些内容。
PHP5中的SOAP扩展[kuo
zhan](ext/soap)PHP5
最早宣布的版本
中就已经供应
了SOAP扩展[kuozhan],可是当时的PHP手册中声明[shengming]这个扩展[kuozhan]是
试验性(experimental)的。实质受骗时的版本已经实现了比较完满的功能,也没有必要
为此而担忧。当前这个扩展[kuozhan]还在不断地完满,早期版本中的大多数bug都已经得
到了修正,当前最新的版本()中已经供应了比较完满的对SOAP的支持[zhichi],而
且我们有原因相信[xiangxin],此后的版本还会更好。
SOAP扩展[kuozhan]库结构[jiegou]
ext/soap中包括六个预定义的类,经过这些类,我们能够创立Web服务端(SoapServer
类),客户[kehu]端(SoapClient类),办理SOAP恳求[qingqiu]和应答[yingda]
(SoapHeader,SoapParam,SoapVar类),诊疗[zhenduan]错误[cuowu](SoapFault类)。这些
类之间的联系
[lianxi]
如图
1所示:
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
3/3
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
图
扩展
[kuozhan]的结构
[jiegou]
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
3/3
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
SOAP服务类SoapServer
SoapServer类用来开发Web服务端应用[yingyong]程序[yingyongchengxu]。这个类中包
含创立,设置[shezhi]和控制Web服务的函数[hanshu]。有两种方式能够向Web服务
中增添操作(Operation)。一种方式是直接增添已定义的函数[hanshu],另一种方式是增添已
定义好的类,进而将该类的公有成员[gongyouchengyuan]函数[hanshu]增添到Web服务
中。
另一个需要说明[shuoming]的特点是,PHP支持[zhichi]两种Web服务的模式[moshi]:
WSDL模式[moshi]和non-WSDL模式[moshi],为了便于理解,我们第一从Web服务的
两种实现模式[moshi]开始说起。
PHP中Web服务的两种模式[moshi]:WSDL模式[moshi]和non-WSDL模式[moshi]
关于Web服务来说,主要有两种实现模式[moshi]–契约先行(ContractFirst)模式[moshi]
和代码[daima]先行(CodeFist)模式[moshi]。
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
3/3
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
契约先行模式[moshi]的实现中,首要工作是定义针对这个Web服务的借口的WSDL(Web
ServicesDescriptionLanguage,Web服务描绘语言[yuyan])文件[wenjian]。WSDL文件[wenjian]中描绘了Web服务的地点[weizhi],可供应的操作集,以及其他一些
属性[shuxing]。WSDL文件[wenjian]也就是Web服务的“契约”。“契约”订立此后,再据此进行服务器[fuwuqi]端和客户[kehu]端的应用[yingyong]程序[yingyongchengxu]开发。这
种模式[moshi]对应上节所说的WSDL模式[moshi]。我们后文中介绍的例子就是使用这一
模式[moshi]实现的。
与契约先行模式[moshi]不同样,代码[daima]先行模式[moshi]中,第一步工作是实现Web服
务端,尔后依照服务端的实现,用某种方法[fangfa](自动生成或手工编写)生成WSDL文
件[wenjian]。可是由于PHP自己并没有供应从Web服务实现代码[daima]中生成WSDL
文件[wenjian]的方法[fangfa],因此就要以non-WSDL模式[moshi]连结[lianjie]服务端,即不经过WSDL文件[wenjian]创立[wenjianchuangjian]SoapServer和SoapClient示例,而是直接向结构函数[hanshu][gouzaohanshu]传达必要的参数[canshu]。自然,代码[daima]
先行模式[moshi]也有其他的解决方法[fangfa],一些集成[jicheng]的PHP开发工
具(如ZendStudio)就供应了依照Web服务实现代码[daima]生成[daimashengcheng]
WSDL文件[wenjian]的功能。
SOAP客户[kehu]端类SoapClient
SOAP客户[kehu]端类SoapClient用于[yongyu]开发Web服务的客户[kehu]端程序。可用
的成员函数[hanshu][chengyuanhanshu]主要有创立客户[kehu]端实例,调用[tiaoyong]可用
操作,查问可用操作和数据[shuju]种类[leixing][shujuleixing]等。除此之外还包括了可用
于[yongyu]程序调试[tiaoshi]的函数[hanshu]–获取前一次恳求[qingqiu]和应答[yingda]的
SOAP数据[shuju]。
SOAP参数[canshu]类SoapHeader,SoapParam,SoapVar
SoapParam和SoapVar主要用来封装[fengzhuang]用于[yongyu]放入SOAP恳求[qingqiu]
中的数据[shuju],他们主要在non-WSDL模式[moshi]下使用。事实上,在WSDL模式[moshi]下,SOAP恳求[qingqiu]的参数[canshu]能够经过数组[shuzu]方式包装,SOAP扩展[kuozhan]会依照WSDL文件[wenjian]将这个数组[shuzu]转变成为SOAP恳求[qingqiu]中的数据[shuju]部分,因此其实不需要这两个类。而在non-WSDL模式[moshi]下,由于没有供应WSDL文件[wenjian],因此必定经过这两个类进行包装。
SoapHeader类用来结构SOAP头,SOAP头能够对SOAP的能力[nengli]进行必要的扩展[kuozhan]。SOAP头的一个主要作用[zuoyong]就是用于[yongyu]简单的身份[shenfen]认证[renzheng],后边会有例子说明[shuoming]这一点。SOAP异样[yichang]类SoapFault
这个类从PHP的Exception类继承[jicheng]而来,能够用来实现SOAP中的异样[yichang]
办理[yichangchuli]系统[jizhi],由SOAP服务端抛出[paochu]。SOAP客户[kehu]端能够
接收该类的实例,用于
[yongyu]获取适用的调试
[tiaoshi]信息[xinxi]。
安装[anzhuang]SOAP扩展[kuozhan]为了使用
SOAP扩展[kuozhan],我们就需要在Web
服务器[fuwuqi]上安装[anzhuang]它。这里有几个因素需要考虑。
安装[anzhuang]的前置
条件[tiaojian][qianzhitiaojian]:在官方的使用手册中能够找到,
ext/soap扩展[kuozhan]使
用了GNOMEXML
库,因此在安装
[anzhuang]SOAP扩展[kuozhan]以前需要安装[an
zhuang]这个库(需要
)。
PHP可否已安装[anzhuang]:
若是你想
在安装[anzhuang]PHP的同时加入
SOAP扩展[kuozhan],那再简单可是了。若是是下载
[xiazai]PHP源代码[daima][yuan
daima]自己编译[bianyi]安装[anzhuang]的情况[qing
kuang],则只要要在编译[bianyi]时[bianyishi]的configure命令[mingling]中增添选项[xuan
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
5/3
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
xiang]–enable-soap即可。若是是直接使用二进制
[erjinzhi]文件[wenjian][erjinzhiwenjian]
安装[anzhuang](平常只用于[yongyu]Windows
平台[pingtai]),安装[anzhuang]包中则已
经包括了这一扩展
[kuozhan],不需要额外安装
[an
zhuang]。
而若是需要在已经安装
[an
zhuang]好的PHP
上增添SOAP扩展[kuozhan],需要做的工作就要多一些。
在编译[bianyi]
SOAP
扩展[kuozhan]的源代码[daima][yuandaima]
以前需要使用
phpize命令[mingling]设
置[shezhi]编译[bianyi]环境,尔后再使用configure
命令[mingling]
,此后编译[bianyi]并安
装[anzhuang]SOAP扩展[kuozhan]。
编译[bianyi]安装[anzhuang]SOAP扩展[kuozhan]此后,我们还需要改正[xiugai]PHP
的配
置[pei
zhi]文件[wenjian][peizhiwen
jian],以便SOAP扩展[kuo
zhan]能够正确的被
PHP
加载。关于
Linux
平台[pingtai]来说,需要在
[daima]:
extension=[/pre]
而关于Windows
平台[pingtai],需要加入的代码[daima]为:
extension=[/pre]
除此之外,可能还需要设置
[shezhi]扩展[kuozhan]库的地点[wei
zhi],这一信息[xin
xi]在
域中保留,比方:
extension_dir=
“/usr/local/php/lib/
”[/pre]
上面的工作达成此后,还需要注意的是
SOAP扩展[kuozhan]在配置[peizhi]文件[wen
jian][peizhiwenjian]中有独立[duli]的代码[daima]段:
清单
[kuozhan]的设置[shezhi]
soap];EnablesordisablesWSDL
=1;
Sets
the
directory
name
where
SOAP
extension
will
put
cache
=
”C:tmp”;(time
to
live)
Setsthe
number
ofsecond
while
cachedfilewillbeused;=86400
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
6/3
虚假主机问题之PHPSOAP扩展PHPSOAP扩展详解要点
虚拟主机问题PHPSOAP扩展PHPSOAP扩展详解要点 来自淘豆网m.daumloan.com转载请标明出处.