PHP 和 SOAP 开发基于 Web 服务的应用程.docVIP

PHP 和 SOAP 开发基于 Web 服务的应用程.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHP 和 SOAP 开发基于 Web 服务的应用程 使用PHP和SOAP开发基于Web服务的应用程序(zz)2010-05-04 15:48简介:SOAP是Web服务中最常用的协议,通常的Web服务使用Java语言编写,但众多的PHP程序员可能更喜欢使用PHP来完成整个Web应用程序的开发。本文介绍了使用PHP5中新增的SOAP扩展(ext/soap)进行Web服务开发的步骤,包括WSDL文件的编写,Web服务端和客户端脚本的开发。这可以帮助PHP程序员快速开发基于Web服务的应用程序,而不需要脱离PHP环境,借助其他语言或者编程模型开发Web服务。 SOAP的全称为简单对象访问协议(Simple Object Access Protocol)。它是一种基于XML的,可扩展的通信协议。SOAP提供了一种标准,使得运行在不同平台上并使用不同的编程语言编写的应用程序可以互相进行通信。SOAP的可扩展性和平台无关性使得它被广泛用作Web服务的通信协议。 由于Java语言提供了对SOAP的良好支持,通常基于Web服务的应用程序使用Java语言编写。对于广大的PHP程序员来说,可能会有一点小小的不满– PHP的较早版本根本没有对SOAP的直接支持,只能通过PEAR(the PHP Extension and Application Repository)中的SOAP库或者第三方产品NuSOAP来开发Web服务。不过最近的版本已经改变了这一状况。自PHP 5开始新增了内置的SOAP扩展(ext/soap),从此我们不需要下载额外的扩展库或是代码包来开发基于SOAP的应用程序了。接下来让我们来看看SOAP扩展中都有哪些内容。 PHP 5最早发布的版本5.0.0中就已经提供了SOAP扩展,不过当时的PHP手册中声明这个扩展是试验性(experimental)的。实际上当时的版本已经实现了比较完善的功能,也没有必要为此而担心。目前这个扩展还在不断地完善,早期版本中的大部分bug都已经得到了修正,目前最新的版本(5.3.0)中已经提供了比较完整的对SOAP的支持,而且我们有理由相信,以后的版本还会更好。 ext/soap中包括六个预定义的类,通过这些类,我们可以创建Web服务端(SoapServer类),客户端(SoapClient类),处理SOAP请求和应答(SoapHeader,SoapParam,SoapVar类),诊断错误(SoapFault类)。这些类之间的联系如图1所示: SoapServer类用来开发Web服务端应用程序。这个类中包含创建,设置和操纵Web服务的函数。有两种方式可以向Web服务中添加操作(Operation)。一种方式是直接添加已定义的函数,另一种方式是添加已定义好的类,从而将该类的公有成员函数添加到Web服务中。 另一个需要说明的特性是,PHP支持两种Web服务的模式:WSDL模式和non-WSDL模式,为了便于理解,我们首先从Web服务的两种实现模式开始说起。 对于Web服务来说,主要有两种实现模式–契约先行(Contract First)模式和代码先行(Code Fist)模式。 契约先行模式的实现中,首要工作是定义针对这个Web服务的借口的WSDL(Web Services Description Language,Web服务描述语言)文件。WSDL文件中描述了Web服务的位置,可提供的操作集,以及其他一些属性。WSDL文件也就是Web服务的契约。契约订立之后,再据此进行服务器端和客户端的应用程序开发。这种模式对应上节所说的WSDL模式。我们后文中介绍的例子就是使用这一模式实现的。 与契约先行模式不同,代码先行模式中,第一步工作是实现Web服务端,然后根据服务端的实现,用某种方法(自动生成或手工编写)生成WSDL文件。但是由于PHP本身并没有提供从Web服务实现代码中生成WSDL文件的方法,因此就要以non-WSDL模式连接服务端,即不通过WSDL文件创建SoapServer和SoapClient示例,而是直接向构造函数传递必要的参数。当然,代码先行模式也有其他的解决方法,一些集成的PHP开发工具(如Zend Studio)就提供了根据Web服务实现代码生成WSDL文件的功能。 SOAP客户端类SoapClient用于开发Web服务的客户端程序。可用的成员函数主要有创建客户端实例,调用可用操作,查询可用操作和数据类型等。除此之外还包括了可用于程序调试的函数–获取上次请求和应答的SOAP数据。 SoapParam和SoapVar主要用来封装用于放入SOAP请求中的数据,他们主要在non-WSDL模式下使用。事实上,在WSDL模式下,SOAP请求的参数可以通过数组方式包装,SOAP扩展会根据WSDL文件将这个数

文档评论(0)

tcpe + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档