PHP SOAP Server方法接收一组参数

时间:2013-12-26 10:58:37

标签: php web-services soap wsdl zend-soap

我已经使用php设置了一个SOAP服务器。

问题在于,根据WSDL,调用服务器方法的客户端应该传递一组参数(超过50个)。我从SOAP UI了解到这一点。

但是我如何在Server方法中处理所有这些参数? 我应该继续为我的Server方法声明每个参数,如下所示吗?

public function addMessage($a, $b, $c, $d, .................) {

}

但我希望必须有一个更简单的方法。我希望在服务器方法中接收所有参数,作为数组或对象。

更新:我正在使用Zend_Soap_Server。我是否需要定义任何复杂类型来处理输入参数?正如我所见,WSDL定义了一些复杂的类型。

2 个答案:

答案 0 :(得分:2)

尝试使用http://www.php.net/manual/en/function.func-get-args.php

public function addMessage() {
    $args = func_get_args();

    foreach($args as $argument)
    {
         # processing 
         $this->do_process($argument);
    }
    var_dump($args);
}

呼叫

$this->addMessage('a', 'b', 'c', 'd', ....);

并且函数将返回

array(1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd' ....);

答案 1 :(得分:0)

好吧,我终于可以在我的方法中接收参数作为对象了。这些对象已在XSD文件中定义为复杂类型。