很多 Web 开发人员喜欢 PHP 的丰富功能和简单易用,但有时候他们需要访问 J2EE 应用程序服务器中已有的业务逻辑。本文将通过一些例子说明如何通过 PHP 5 中新的 SOAP 扩展使用 Web 服务来访问 J2EE 应用程序,而不必脱离 PHP 环境,也不用学习新的编程模型。
PHP、Web 服务和 SOAP 简介
本文将介绍如何从 PHP 脚本中访问企业应用程序。您可能是一位 PHP 程序员,需要为部门 Web 应用程序编写代码,以便访问公司总部以 Web 服务方式提供的服务。您或许是一位有经验的 J2EE 开发人员,希望多了解一点 PHP 及其应用。本文中的例子是一个运行在 IBM WebSphere? 应用程序服务器上的 Enterprise JavaBean(EJB),但本文并没有讨论 Web 服务的部署。它的主要目标是介绍如何从 PHP 中使用 Web 服务,这一点可以应用于各种 Web 服务实现。
什么是 PHP?
PHP:Hypertext Preprocessor(超文本预处理器,PHP)是一种流行的服务器端脚本语言,用于创建动态 Web 内容。PHP 解释器为主流平台提供了源代码或者编译好的二进制文件,这些平台包括大多数 Linux? 版本、Windows?、Mac OS X 和 iSeries?。
[soap] ; Enables or disables WSDL caching feature. soap.wsdl_cache_enabled=1 ; Sets the directory name where SOAP extension will put cache files. soap.wsdl_cache_dir="/tmp" ; (time to live) Sets the number of second while cached file will be used ; instead of original one. soap.wsdl_cache_ttl=86400 这段配置控制了 SOAP 扩展的 WSDL 缓存特性。默认情况下,WSDL 描述文件在 24 小时(86400 秒)内都缓存在 /tmp 目录下。我们迟些时候再讨论这些内容,现在要设置 soap.wsdl_cache_enabled=0,否则,在开发代码时,您会遇到一些莫名其妙的行为。完成开发之后,要记得打开 WSDL 缓存,使代码运行得更快。
为了便于参考,我们将在两种环境中使用 ext/soap:
Linux Centos 3.3(Red Hat EL 3 的免费重建版本)、Apache 2.0.47、PHP 5.0.2,需要升级 libxml2 到 2.6.12。 Windows XP SP1、Apache 2.0.46、PHP 5.0.2 二进制压缩包、libxml2 2.6.11。