objeto de retorno con Zend_Soap
-
25-09-2019 - |
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.
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.
Otros consejos
¿Ha intentado desactivar la caché?
En PHP ¿cómo se puede borrar una memoria caché WSDL / a>
Yo tenía el mismo problema. Cada petición que me hizo devuelve un stdClass vacío, a pesar de que el WSDL era correcta. Después de desactivar el almacenamiento en caché funcionó bien para mí. Darle una oportunidad.