Метод PHP SOAP Server получает набор параметров

Я установил SOAP-сервер с php.

Проблема заключается в том, что, согласно WSDL, клиент, который вызывает серверный метод, должен передать набор параметров (более 50). Я узнал об этом из пользовательского интерфейса SOAP.

Но как мне обрабатывать все эти параметры в моем методе "Сервер"? Должен ли я продолжать и объявлять каждый параметр для моего метода Server, как показано ниже?

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

}

Но я надеюсь, что для этого должен быть более простой подход. Предпочтительно, я хотел бы получить все параметры в моем методе "Сервер" в виде массива или объекта.

UPDATE: Я использую Zend_Soap_Server. Нужно ли определять какие-либо сложные типы для обработки входных параметров? Как я вижу, WSDL определяет несколько сложных типов.

2 ответа

Ну, я мог бы наконец получить параметры как объекты в моем методе. Эти объекты уже были определены как сложные типы в файлах XSD.


Попробуйте использовать 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' ....);

licensed under cc by-sa 3.0 with attribution.