WEB开发网
开发学院数据库Oracle 利用PHP创建由Oracle驱动的SOAP服务 阅读

利用PHP创建由Oracle驱动的SOAP服务

 2009-01-06 13:10:21 来源:WEB开发网   
核心提示: ◆soap_version:与客户端通信时使用的 SOAP 协议版本,可能的选项是用于 SOAP 1.1 版的常量 SOAP_1_1 或用于 SOAP 1.2 版的 SOAP_1_2,利用PHP创建由Oracle驱动的SOAP服务(2),◆encoding:用于该 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);

正如您从上述示例中看到的那样,公开为 SOAP 服务的函数看上去与常规 PHP 函数完全相同。但是,根据定义,适用于在 SOAP 服务上下文中使用的函数的几个规则并不适用于常规 PHP 函数:

◆函数必须以相同的顺序接受相同的输入参数,如提供给服务器的 WSDL 文档定义的那样。

上一页  1 2 3 4 5 6 7  下一页

Tags:利用 PHP 创建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接