Pregunta

Me gustaría devolver un objeto utilizando Zend_Soap. También quiero que el objeto dado en el archivo WSDL. Pero no puedo conseguir tanto para trabajar juntos. Es uno o el otro.

1. WSDL de trabajo, pero no devolver objeto

Si en el phpdoc de mi función en el script del servidor de jabón, escribo

 @return Application_Model_Soap_Test

Me lo puede ver en el archivo WSDL

<message name="getPostcodeOut">
    <part name="return" type="tns:Application_Model_Soap_Test"/>
</message>

pero cuando funciono con la escritura, devuelve una clase vacía:

stdClass Object
(
)

2. Obtener objeto, pero WSDL mal

Si cambio de información phpdoc de la función de servidor a

@return mixed Application_Model_Soap_Test

me sale un objeto con la espalda Info:

stdClass Object
(
    [name] => Fred
    [age] => 40
)

pero el archivo WSDL está mal

<message name="getPostcodeOut">
    <part name="return" type="xsd:anyType"/>
</message>

Algunas ideas? Gracias.

¿Fue útil?

Solución

Es necesario pasar una variable opción 'classmap' en el cliente.

http://www.php.net/manual/en/ soapclient.soapclient.php y http://www.php.net /manual/en/soapclient.soapclient.php sobre la opción 'classmap' aprobada en la matriz opción.

Básicamente debe ser una matriz mapeo de las clases a las clases definidas como los objetos devueltos en el archivo WSDL.

scroll top