Zend Framework Soap WSDL - PullRequest
       2

Zend Framework Soap WSDL

0 голосов
/ 03 ноября 2011

У меня есть работающий сервис SOAP, который использует PHP / Zend Framework SOAP. Проблема, с которой я сталкиваюсь, заключается в том, что WSDL должен реализовать «xsd: decimal» вместо «xsd: int».

Использование метода автообнаружения в следующем фрагменте:

/* @var decimal */
public $prize;

возвращает следующую ошибку:

Невозможно добавить десятичный знак сложного типа, который не является объектом или класс которого не найден в стратегии DefaultComplexType.

Использование карты классов, похоже, не решает проблему. Есть ли способ использовать «xsd: decimal» с методом автоматического обнаружения?

Следующий фрагмент отлично работает, но в WSDL показывает «xsd: int»:

/* @var int */
public $prize

Ответы [ 2 ]

1 голос
/ 04 января 2012

использовать float

PHP плавает и удваивается <-> xsd: float.

0 голосов
/ 31 октября 2012

Вы не можете использовать десятичную дробь.

Но вы пытались использовать сложный тип с именем decimal, который сопоставляется с плавающей точкой?

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

Вам также необходимо определить правильную стратегию автообнаружения:

$autodiscover = new Zend_Soap_AutoDiscover('Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...