我已经建立了SOAP服务器用PHP。
的问题是,当按照WSDL,它调用服务器方法的客户端,应该通过的一组参数(大于50)。 我从SOAP UI知道这一点。
但我怎么处理我的服务器方法中的所有这些参数? 我应该去和申报的每一个参数为我的服务器方法,如下?
public function addMessage($a, $b, $c, $d, .................) {
}
但我希望,必须有这种更简单的方法。 优选地,我想接收的所有参数在我的服务器的方法,为阵列或对象。
更新 :我使用Zend_Soap_Server。 我是否需要定义任何复杂类型,用于处理输入参数? 依我之见,WSDL定义了一些复杂的类型。
尝试使用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' ....);
好了,我终于可以接收参数,在我的方法的对象。 这些对象已经被定义为复杂类型的XSD文件。