2011-11-02 3 views
0

PHP/Zend Framework SOAP을 사용하는 SOAP 서비스가 있습니다. 문제는 WSDL이 "xsd : int"대신 "xsd : decimal"을 구현해야한다는 것입니다. 다음 코드에 자동 검색 방법을 사용하여Zend Framework SOAP WSDL

: 문제를 해결하지 않는 것 클래스 맵을 사용

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

:

/* @var decimal */ 
public $prize; 

다음과 같은 오류를 반환합니다. AutoDiscovery 메서드에서 "xsd : decimal"을 사용할 수 있습니까?

다음 코드는 잘 작동하지만 보여줍니다 다음 WSDL에서 "XSD INT"

/* @var int */ 
public $prize 

답변

1

사용 플로트

PHP 수레와 < 두 배로 -> XSD : 플로트.

+0

:

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

는 올바른 자동 검색 전략을 정의하는 것도 필요합니다. "십진수"를 표시하는 자동 생성 WSDL이 필요합니다 (이유를 묻지 말고 선택하지 않습니다). – cnemelka

+0

이 서비스의 SOAP 클라이언트는 "xsd : decimal"이 필요합니다. 아니, 나도 왜 ... – cnemelka

0

십진수를 사용할 수 없습니다.

하지만 float에 매핑되는 decimal이라는 복합 유형을 사용해 보았습니까? 내가 플로트를 사용할 수 없습니다

$autodiscover = new Zend_Soap_AutoDiscover('Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex');