• 技术文章 >后端开发 >php教程

    利用PHP创建由Oracle驱动的SOAP服务(1)_PHP教程

    2016-07-15 13:25:16原创325
    能够通过 Web 服务为其他基于 Internet 的 Web 应用程序提供数据和功能正迅速成为重大开发中必不可或缺的组成部分。尽管 Oracle 提供了许多托管 Web 服务的方法,但这么做始终不是最有效的方法,特别是在已经使用 PHP 来开发 Web 应用程序的情况下。在本手册中,我将引导您使用 PHP 逐步开发 SOAP 客户端和服务器,并使用 Oracle 作为数据的后端。

    要真正了解这个问题的答案,您需要了解PHP脚本执行的生命周期以及 Web 服务器对该生命周期的影响,本手册将从此开始逐步展开论述。

    必需组件

    出于本文的需要,您将使用一个非常简单的数据库后端,该数据库后端将在一个表中存储有关已发表书籍的某些基本信息,该表由以下 CREATE 语句表示:

    CREATE TABLE books(isbn VARCHAR(32) PRIMARY KEY,author VARCHAR(50),title VARCHAR(50),price FLOAT);

    该表将充当 SOAP 服务器的数据源,而数据源又会根据需要将数据提供给一个或多个 SOAP 客户端。尽管在实际应用程序中,您的数据库可能比较复杂,但这里描述的方法仍然适用。

    建立数据库(最好在其中放置一些虚拟数据)之后,您现在就可以深入了解用 PHP 开发 SOAP 服务器所涉及的内容了。

    SOAP 服务在 PHP 中的工作方式

    用 PHP 开发 SOAP 服务的选择有多种,所有方法都涉及到 SoapServer PHP 类。该类是所有基于 PHP 的 SOAP 服务的核心部分,其语法如下:

    $server = new SoapServer($wsdl [, $options]);

    其中,$wsdl 是描述托管服务的 Web 服务描述语言 (WSDL) 文档的位置;$options 是一组键/值对,其中包含了在创建服务时需要考虑的所有设置选项。稍后,您将了解有关 WSDL 文档的更多内容;现在,我们来看一下在创建新的 SOAP 服务时可用的选项:

    ◆soap_version:与客户端通信时使用的 SOAP 协议版本。可能的选项是用于 SOAP 1.1 版的常量 SOAP_1_1 或用于 SOAP 1.2 版的 SOAP_1_2。

    ◆encoding:用于该 SOAP 服务的字符编码(即字符串 ISO-8859-1)。

    ◆actor:该 SOAP 服务的角色 URI。

    ◆classmap:将 WSDL 数据类型映射到 PHP 中的类名的一组键/值对本身。如果使用该选项,PHP 将根据 WSDL 中定义的类型将这些类呈现给连接客户端。

    因此,要使用名为 bookman.wsdl 的 WSDL 文档创建一个使用 SOAP v1.2 协议的 SOAP 服务,您应该按如下方法构建服务器:

    $server = new SoapServer(“bookman.wsdl”, array(‘soap_version’ => SOAP_1_2));

    该过程的下一步是创建服务方法。在 PHP 中,这可以使用两个主要方法完成。第一个(也是最灵活的)方法是使用 addFunction() 方法手动指定要托管在服务中的每个函数,并将函数名传递给该方法以公开到客户端:

    function add($a, $b) {return $a + $b;}$server->addFunction(‘add’);

    您还可以通过提供一组函数名来添加多个函数:

    function add($a, $b) {return $a + $b;}function sub($a, $b) {return $a - $b;}$server->addFunction(array(‘add’, ‘sub’));

    最后,您可以通过传递特殊常量 SOAP_FUNCTIONS_ALL 而非函数名来导出所有定义的函数,如下所示:

    function add($a, $b) {return $a + $b;}function sub($a, $b) {return $a - $b;}$server->addFunction(SOAP_FUNCTIONS_ALL);

    1

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446686.htmlTechArticle能够通过 Web 服务为其他基于 Internet 的 Web 应用程序提供数据和功能正迅速成为重大开发中必不可或缺的组成部分。尽管 Oracle 提供了许多托...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:利用 PHP 创建 Oracle 驱动 SOAP 服务 能够 通过 Web 服务 其他 基于 Interne
    上一篇:PHP程序员易忽略的PHP精华和技巧_PHP教程 下一篇:Bruce Eckel评PHP:仅限于小范围应用_PHP教程
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• PHP编程,表单查询数据后,数据特定显示方式求解?该如何解决 • PHP有没有可能写出中转邮件的代码? • php下传文件的简单代码 • php 正则婚配字符串为空白字符或空字符 • Discuz中DIY效能的实现原理
    1/1

    PHP中文网