前面深入介绍了WSDL文件结构,相信读者已经对WSDL有了初步认识。事实上很多PHP可视化编程工具已经提供了全面的WSDL支持,例如ZendStudio、Eclipse PDT等。使用可视化工具创建WSDL不仅可以提高开发效率,还可以减少出错的几率。接下来将以ZendStudio 8.0为例,详细介绍在IDE环境中创建WSDL的全过程。图12-6 WSDL文件属性最后只需要单击“完成”按钮,即可创建一个WSDL文件。现在的WSDL文件只有骨架,并没有消息体。......
2023-11-04
nusoap是一套第三方开源类库,用于创建及调用SOAP服务。nusoap不依赖于PHP扩展模块,在早期的PHP 4.x时就已经存在,所以就算PHP没有开启SOAP模块,也不会影响nusoap的运行。nusoap非常灵活及强大,不仅支持常用的SOAP服务调用,而且还支持动态生成WSDL,支持使用数组作为消息参数类型。
此外nusoap套件还支持多种客户端与服务端连接方式,例如代理连接,SSL安全连接等。使用nusoap开发SOAP服务,不仅可以有效提高开发效率,而且由于代码全部基于PHP,开发员不需要面对复杂难记的WSDL标记,只需要掌握PHP面向对象开发即可。接下来将结合示例代码,详细介绍nusoap的使用。
1.nusoap入门
首先下载nusoap,下载地址为http://beauty-soft.net/book/php_mvc/vendor/nusoap.html。解压后得到lib文件夹及samples文件夹,其中lib文件夹为nusoap核心文件类库;samples文件夹存放了一些演示示例,这里只需要将lib文件夹复制到网站nusoap目录下即可。接下来分别介绍。
首先在nusoap目录中创建一个服务端文件并命名为api.php,代码如下所示。
上述代码共定义了一个函数,并命名为test。这里为了便于测试,并没有实现具体功能。完成后,使用register方法将该函数注册为WSDL操作(operation)。register第2个参数表示message消息体(即operation的传参),第3个参数表示操作返回的数据类型。
将文件保存,一个SOAP服务端就创建完成了。nusoap强大之处还在于其调试功能,nusoap内置了一个简单的调试器,可直接访问api.php文件,如图12-11所示。
图12-11 WSDL生成效果(www.chuimin.cn)
单击页面中的“test”操作,将显示该操作的调用方式及数据类型,如图12-12所示。
图12-12 test操作的调用说明
图12-12中,详细地列出了test操作的传递参数,返回类型以及调用URL。如果需要查看生成后的WSDL文件源代码,可以单击页面上的“WSDL”连接,效果如图12-13所示。
图12-13 WSDL源代码
2.调用SOAP服务
nusoap本身提供了用于调用SOAP服务的类,但是由于使用SoapClient作为类名,与PHP内置的SoapClient同名,由于PHP对类名、函数名大小写不敏感,所以如果启用了内置的SOAP扩展模块,就不要使用nusoap的SoapClient类库。只需要使用内置的SoapClient类即可,如以下代码所示。
有关PHP MVC开发实战的文章
前面深入介绍了WSDL文件结构,相信读者已经对WSDL有了初步认识。事实上很多PHP可视化编程工具已经提供了全面的WSDL支持,例如ZendStudio、Eclipse PDT等。使用可视化工具创建WSDL不仅可以提高开发效率,还可以减少出错的几率。接下来将以ZendStudio 8.0为例,详细介绍在IDE环境中创建WSDL的全过程。图12-6 WSDL文件属性最后只需要单击“完成”按钮,即可创建一个WSDL文件。现在的WSDL文件只有骨架,并没有消息体。......
2023-11-04
在PHP中,SOAP扩展模块只能解释WSDL文件,这也是W3C所规范的文件类型。事实上WSDL并非唯一的SOAP文档模型,在其他平台中出于商业需要,各厂商会进行相应的功能定制,文件名称也不尽相同,例如ASP.NET平台就叫ASMX。图12-3 WSDL文档模型如图12-3所示,这些节点描述信息并非全是必选的,下面将通过一个示例代码,简单演示SOAP的应用。接下来将对WSDL中重要的节点元素进行讲解。......
2023-11-04
熟悉Web开发的读者经过前面介绍的HTTPSQS测试,相信已经了解了怎样在PHP中提交数据入队。同时,HTTPSQS还提供了多种语言的类库,用于实现HTTPSQS入队及出队的所有操作,由于目前还没有介绍ThinkPHP扩展,所以这里不使用作者提供的类库,而是使用PHP内置的CURL函数。这里将使用HTTPSQS处理日志信息,如以下代码所示。下面将使用PHP解释器实现一个简单的HTTPSQS监控脚本。......
2023-11-04
ThinkPHP的模板引擎高效之处在于灵活的视图标签,熟悉这些标签的使用方式将能够提高视图模板的设计水平。接下来将从基本的创建视图开始,然后深入介绍默认视图引擎的使用。创建一个视图可分为以下几个步骤。需要注意的是,使用默认的{$}边界符,在视图模板中使用JavaScript等脚本时,有可能造成冲突。ThinkPHP内置了多种视图引擎,在默认情况下系统会使用内置的视图引擎,如果使用第三方的视图引擎,变量的分配方式会有所不同。......
2023-11-04
SOA组件之间进行通信时,使用SOAP协议进行传递。此外,SOAP不仅支持HTTP还支持SMTP、MIME等多种成熟的网络传输协议,也就是说使用SOAP协议可以代替HTTP、SMTP等受支持的协议。图12-1 SOAP通信过程如图12-1所示,读者也许会感觉到整个流程与普通的XML通信过程并无区别,事实上Web Service整个开发框架核心在SOAP协议。但要是在支持SOAP访问协议的容器中访问WSDL文件时,将会得到SOAP服务,并能够发现被注册的公开服务。......
2023-11-04
TortoiseSVN是免费开源的,同样能够运行在Windows及Linux等主流操作系统上,接下来将详细讲解在Windows操作系统上安装TortoiseSVN。要安装TortoiseSVN,首先需要下载相应的安装包,下载网址为http://tortoisesvn.net/downloads.html。TortoiseSVN的安装非常容易,一直点击“Next”按钮直至完成即可。安装完成后在桌面空白的区域单击鼠标右键,如出现图1-25所示菜单,即表明TortoiseSVN安装成功了。......
2023-11-04
ThinkPHP创建网站时使用UTF8编码,包括数据库操作默认情况下也使用与文件系统相同的编码。事实上PHP已经内置了iconv函数用于处理字符编码,但只能处理字符串。其中参数filename表示需要转码的有效文件;参数out_charset表示转换后的编码,接受的输出编码与iconv函数一样。......
2023-11-04
完成上述步骤后,就可以进行安装HTTPSQS了。最后只需要启动HTTPSQS服务进程即可。因为HTTPSQS队列为空,所以返回结果为HTTPSQS_ERROR。检查HTTPSQS是否已经成功运行,可以查看是否存在主进程,如以下代码所示。......
2023-11-04
相关推荐