专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » php脚本:从 PHP 脚本中访问企业应用程序 »正文

php脚本:从 PHP 脚本中访问企业应用程序

来源: 发布时间:星期一, 2009年1月12日 浏览:82次 评论:0
  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 解释器为主流平台提供了源代码或者编译好 2进制文件这些平台包括大多数 Linux? 版本、Windows?、Mac OS X 和 iSeries?

  确实有数百万台 Web 服务器正在运行 PHP其中大部分使用是 PHP 42004 年 7 月推出 PHP 5 正在逐渐被采用PHP 5 改进了对象模型底层内存管理也从多线程和性能角度重新作了设计但是需要注意少数无法向后兼容修改PHP 手册(请参阅参考资料)中对这些进行了记录

  什么是 Web 服务技术?

  Web 服务指是自成体系、模块化应用客户机和服务在这种应用中是松耦合有关 Web 服务详细信息请参阅参考资料中链接对于本文来说您只需要了解其中主要技术:

  SOAP(简单对象访问协议)定义了客户机和服务器的间传递消息消息采用 XML 格式SOAP 独立于平台、编程语言、网络和传输层本文将讨论 HTTP 上 SOAP

  WSDL(Web 服务描述语言)是用于描述 Web 服务基于 XML 语言描述内容包括服务位置、格式、操作、参数和数据类型

  UDDI(统描述、发现和集成)是用 API 和 UDDI Registry 实现来提供在网络上存储和检索 Web 服务信息思路方法

  本文包括 SOAP 消息和 WSDL 文档些例子但没有提供 UDDI 例子

  XMethods 网站WebSite是个有用 Web 服务工具(请参阅参考资料)在那里可以找到在各种服务器平台上实现可公开使用 Web 服务列表可以使用本文中例子很方便地访问从 XMethods 中选择服务

  SOAP 和 PHP

  有多种产品允许在 PHP 4 脚本中使用 SOAP最常见产品是 PEAR::SOAP 和 NuSOAP在写这篇文章时候这些产品在和 PHP 5 兼容方面还存在问题估计很快就会升级

  PHP 5 中新增了内置 SOAP 扩展我们称的为 ext/soap它是作为 PHP 部分提供因此不需要下载、安装和管理单独这是第个用 C 而不是 PHP 为 PHP 编写 SOAP 实现因此作者声称它速度要快得多

  扩展是 PHP 完整组成部分的相关文档包含在 PHP 手册 Function Reference 部分(请参阅参考资料)SOAP 参考是以个重要免责声明开始:

  警告:该扩展是试验性(EXPERIMENTAL)本扩展行为包括有关本扩展名和其他内容在以后 PHP 版本中随时可能改变不另行通知使用该扩展风险自负

  警告看起来有点让人担心但实际上这个扩展似乎得到了很好支持和任何新代码该扩展也存在缺陷但是报告问题通常很快就能得到修正在 PHP 站点上可以看到缺陷列表(请参阅参考资料)我们估计在将来 PHP 版本中该扩展将从试验性功能转为主流功能

  安装 PHP SOAP 扩展

  应该在 Web 服务器上安装并运行 PHP 5我们实验采用 PHP 5.0.2这是现在最新版本修正了 PHP 5 版本中很多上面已经提到ext/soap 是作为 PHP 5 部分提供因此不需要单独下载但是您可能需要对它做些修改来启用它需要做哪些修改则取决于您是下载源代码自己编译 PHP还是直接下载 2进制文件

  如果下载是 PHP 源代码并在自己平台上编译那么可能需要重新进行构建在默认情况下没有启用 ext/soap重复以前构建过程并在 configure 命令中添加 --enable-soap 选项

  如果下载是预编译平台 2进制文件ext/soap 可能已经编译但没有加载因此需要更新 PHP 配置以便加载 ext/soap编辑 php.ini 并找到 Dynamic Extensions 部分在这里增加行代码来自动加载该扩展   在 Windows 上代码行是:

  extension=php_soap.dll

  在 UNIX 上是:

  extension=php_soap.so

  如果以前没有加载过任何可选扩展可能还要设置 extension_dir 指令让它指向包含扩展库(其中包括 php_soap)目录比如:

  extension_dir="C:/php/ext/"(在 Windows 上使用正斜杠)

  不要将目录信息放到 extension 指令中需要话可以使用 extension_dir

  对于 Windows可以下载其他两个 2进制包Windows 安装包不含任何扩展因此要使用 Windows zip 压缩包这个压缩包中包含 ext/soap

  注意ext/soap 依赖于 GNOME xml 库这个库必须使用 2.5.4 或更高版本如果版本不够高可以从 xmlsoft(请参阅参考资料)安装 libxml2

  最后ext/soap 在 php.ini 中有自己配置部分在完成配置的后ext/soap 如下所示:

[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 _disibledevent="http://www.redbooks.ibm.com/redbooks/pdfs/sg246891.pdf">HTTP



0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: