我已经使用php设置了一个SOAP服务器。
问题在于,根据WSDL,调用服务器方法的客户端应该传递一组参数(超过50个)。我从SOAP UI了解到这一点。
但是我如何在Server方法中处理所有这些参数? 我应该继续为我的Server方法声明每个参数,如下所示吗?
public function addMessage($a, $b, $c, $d, .................) {
}
但我希望必须有一个更简单的方法。我希望在服务器方法中接收所有参数,作为数组或对象。
更新:我正在使用Zend_Soap_Server。我是否需要定义任何复杂类型来处理输入参数?正如我所见,WSDL定义了一些复杂的类型。
答案 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文件中定义为复杂类型。