Комплексный тип в Zend Soap - PullRequest
2 голосов
/ 26 января 2012

Я пытаюсь портировать существующий веб-сервис, написанный с NuSOAP, на Zend Framework.

Мне удалось добавить сложный тип в сервис, но я не могу получить это значение в своей функции.Вот некоторый код, который поможет вам лучше понять.

Контроллер:

private $_WSDL_URI="http://webservice/?wsdl";

public function indexAction()
{
    $this->_helper->viewRenderer->setNoRender();

    if(isset($_GET['wsdl'])) {
        //return the WSDL
        $this->hadleWSDL();
    } else {
        //handle SOAP request
        $this->handleSOAP();
    }
}

private function hadleWSDL() {
    $autodiscover = new Zend_Soap_AutoDiscover('Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex');
    $autodiscover->setClass('Webservice');
    $autodiscover->handle();
}

private function handleSOAP() {
    $soap = new Zend_Soap_Server($this->_WSDL_URI);
    $soap->setClass('Webservice');
    $soap->handle();
}

Класс веб-сервиса:

/**
 * desc
 *
 * @param Type_Authentication
 * @return Array
 */
public function get_vehicle_type($authentication) {
    var_dump($authentication);
    die();

    return array('test', 'tsest');
}

Класс Type_Authentication:

/** @var string */
public $username;

/** @var string */
public $password;

В приведенном выше коде $ authentication возвращает

object(stdClass)#25 (0) {
} 

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

...