Zend 框架 Soap WSDL

发布于 2024-12-13 11:56:48 字数 439 浏览 1 评论 0原文

我有一个使用 PHP/Zend Framework SOAP 的可用 SOAP 服务。我遇到的问题是 WSDL 需要实现“xsd:decimal”而不是“xsd:int”。

对以下代码片段使用 AutoDiscovery 方法:

/* @var decimal */
public $prize;

返回以下错误:

无法添加不是对象或在“DefaultComplexType”策略中找不到类的复杂类型小数。

使用类映射似乎并不能解决问题。有没有办法将“xsd:decimal”与自动发现方法一起使用?

以下代码片段工作正常,但在 WSDL 中显示“xsd:int”:

/* @var int */
public $prize

I have a working SOAP service that uses PHP/Zend Framework SOAP. The problem I am having is the WSDL needs to implement "xsd:decimal" instead of "xsd:int".

Using the AutoDiscovery method on the following snippet:

/* @var decimal */
public $prize;

returns the following error:

Cannot add a complex type decimal that is not an object or where class could not be found in 'DefaultComplexType' strategy.

Using a class map doesn't seem to fix the issue. Is there any way to use "xsd:decimal" with the AutoDiscovery method?

The following snippet works fine, but shows "xsd:int" in the WSDL:

/* @var int */
public $prize

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

定格我的天空 2024-12-20 11:56:48

使用 float

PHP 浮点数和双精度 <-> xsd:浮动。

use float

PHP floats and doubles <-> xsd:float.

偏爱你一生 2024-12-20 11:56:48

你不能使用小数。

但是您是否尝试过使用名为“十进制”的复杂类型来映射到浮点数?

class decimal
{
/** @var float */
public $prize;
}

您还需要定义正确的自动发现策略:

$autodiscover = new Zend_Soap_AutoDiscover('Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex');

You can't use decimal.

But have you tried using a complex type named decimal, that maps to a float?

class decimal
{
/** @var float */
public $prize;
}

You need also to define the correct autodiscover strategy:

$autodiscover = new Zend_Soap_AutoDiscover('Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文