Webservice SOAP php zend-soap — возвращает массив

У меня есть простой веб-сервис в php с zend-soap фреймворк

Мой класс веб-сервиса в hellows.php:

class Hello
{
/**
* Say hello.
*
* @param string $firstName
* @param string $lastName
* @param int $age
* @return array $aboutMe
*/
public function sayHello($firstName, $lastName, $age)
{

return $aboutMe = [
"name" => $firstName,
"lastName" => $lastName,
"age" => $age
];
}

}

Конфигурация автообнаружения:

$serverUrl = "http://localhost/zend/hellows.php";
$options = [
'uri' => $serverUrl,
];
$server = new Zend\Soap\Server(null, $options);

if (isset($_GET['wsdl'])) {
$soapAutoDiscover = new \Zend\Soap\AutoDiscover(/*new \Zend\Soap\Wsdl\ComplexTypeStrategy\ArrayOfTypeSequence()*/);
$soapAutoDiscover->setBindingStyle(array('style' => 'document'));
$soapAutoDiscover->setOperationBodyStyle(array('use' => 'literal'));
$soapAutoDiscover->setClass('Hello');
$soapAutoDiscover->setUri($serverUrl);

header("Content-Type: text/xml");
echo $soapAutoDiscover->generate()->toXml();
} else {
$soap = new \Zend\Soap\Server($serverUrl . '?wsdl');
$soap->setObject(new \Zend\Soap\Server\DocumentLiteralWrapper(new Hello()));
$soap->handle();
}

Мой клиент веб-службы:

$client = new Zend\Soap\Client('http://localhost/zend/hellows.php?wsdl');
$result = $client->sayHello(['firstName' => 'Jose', 'lastName' => 'Ramirez', 'age'=>20]);

Весь код, показанный ранее, работает нормально, проблема в том, когда я дам result переменная (из файла клиента), она показывает мне:

echo "<pre>";
var_dump($result);
...

object(stdClass)#4 (1) {
["sayHelloResult"]=>
string(5) "Array"}

sayHelloResult Индекс имеет уникальное значение «Массив», когда он должен возвращать array тип ценности. Вопросы … возможно вернуть массив или только строковый тип.

Что я делаю не так?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]