2012-04-25 11 views
0

내 회사에는 PHP의 말풍선을 사용하는 SOAP 프로토콜을 통해 일부 웹 서비스와 정기적으로 연결되는 소프트웨어가 있습니다. 때때로 이것은 실패하고 전체 시스템은 매우 불안정합니다. 나는 대부분의 언어 (PHP와 파이썬 포함)에 강력하고 성숙한 고수준의 라이브러리가 있다고 생각했기 때문에이 웹 서비스와 대화하는 주 도구로 컬을보고 놀랐다. 컬은 상대적으로 낮은 수준이며 오류를 제공하지 않는다. 손질. 내가 맞습니까? SOAP를 통한 통신을위한 최상의 솔루션은 무엇입니까? 내가 따라야 할 엔터프라이즈 표준이 있습니까? 도와주세요. 당신이 필요한 경우SOAP 용 CURL을 사용하는 것이 좋지 않습니까?

$this->soapClient = new SoapClient($wsdl_url); 
// What interface is available, which function can you call? 
var_dump($this->soapClient->__getFunctions()); 

// Call 
$result = $this->soapClient->someMethodExposedByTheApi(); 

// Soap Elements (Tags in the XML) are available as properties: 
echo $result->someProperty; 

// Nested Tags are available as object chain: 
echo $result->someNestedTags->nestedTag; 

내가

... 그것은 어떤 간단 할 수있는 방법을 상상할 수 없었다 :

+0

그냥 'soap' 확장자를 사용 하시겠습니까? http://www.php.net/soap –

답변

0

PHPs는 SOAP 클라이언트 구축은 이미 매우 강력하고, 일반적으로 필요한 물건을 많이 추상화 SOAP 서비스를 설정하려면 젠드 프레임 워크의 독립 실행 형 구성 요소 인 Zend_Soap을 사용하여 wsdl을 기반으로하는 웹 서비스를 자동으로 빌드 할 수 있습니다. 또한 PHP의 SoapClient에 래퍼 (wrapper)가 있지만, 이것은 주로 명명 규칙과 코딩 규칙을 Zend Framework에 수렴하는 데 사용되며 많은 추가 기능을 제공하지는 않습니다.

그러나 매우 구체적인 requierements 경우 컬 괜찮습니다. 때때로 실패하고 시스템이 불안정한 경우 말썽이 아닙니다. 서비스 또는 시스템이 잘못 구성되었을 수 있습니다.

기본적으로 SoapClient는 표준을 기반으로 XML을 작성합니다. 어떤 이유로 든 XML을 직접 작성하면 말풍선은 괜찮습니다.

관련 문제