问题
I have setup a SOAP Server with php.
The problem is that, as per the WSDL, the client which calls the server method, is supposed to pass a set of parameters (more than 50). I got to know this from SOAP UI.
But how do i handle all those parameters in my Server method? Should i go on and declare each and every parameter for my Server method, as below?
public function addMessage($a, $b, $c, $d, .................) {
}
But I hope there must be a simpler approach to this. Preferably, i would like to receive all parameters in my Server method, as an array or object.
UPDATE: I am using Zend_Soap_Server. Do i need to define any complex types, for handling input parameters? As i see, the WSDL defines few complex types.
回答1:
Try to use 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);
}
Call
$this->addMessage('a', 'b', 'c', 'd', ....);
and function will return
array(1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd' ....);
回答2:
Well, i could finally receive the parameters as objects in my method. These objects were already defined as complex types in the XSD files.
来源:https://stackoverflow.com/questions/20783629/php-soap-server-method-receive-a-set-of-parameters