0

我想使用 Zend_Soap 返回一个对象。我还想要 WSDL 文件中给出的对象。但我不能让两者一起工作。它是一个或另一个。

1. WSDL 工作,但对象不返回

如果在我的soap服务器脚本函数的phpdoc中,我写

 @return Application_Model_Soap_Test

我可以在 WSDL 文件中看到它

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

但是当我运行脚本时,它返回一个空类:

stdClass Object
(
)

2. 获取对象,但是错误的 WSDL

如果我将服务器函数的 phpdoc 信息更改为

@return mixed Application_Model_Soap_Test

我得到一个带有信息的对象:

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

但是 WSDL 文件是错误的

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

有任何想法吗?谢谢。

4

2 回答 2

1

您需要在客户端中传递一个“类映射”选项变量。

有关在_ _ _选项数组。

基本上它应该是一个数组,将您的类映射到在 WSDL 文件中定义为返回对象的类。

于 2010-12-09T16:36:24.700 回答
0

您是否尝试关闭缓存?

在 PHP 中如何清除 WSDL 缓存?

我有同样的问题。即使 WSDL 是正确的,我提出的每个请求都会返回一个空的标准类。禁用缓存后,它对我来说效果很好。试试看。

于 2012-06-14T08:55:16.217 回答