2012-04-25 9 views
0

私の会社には、PHPのcurlを使ってSOAPプロトコルを使って定期的にいくつかのWebサービスと接続するソフトウェアがあります。時々これは失敗し、システム全体は非常に不安定です。ほとんどの言語(PHPやPythonを含む)で堅牢で成熟した高レベルライブラリが存在し、カールが比較的低レベルであり、エラーを出さないと思ったので、これらのWebサービスとの主要なツールとしてカールを見て少し驚いた取り扱い。私は正しい? SOAP経由の通信に最適なソリューションは何ですか?私が従うことができるいくつかの企業標準はありますか?助けてください。必要であればCURL for SOAPを使用していますか?

$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 FrameworkのスタンドアロンコンポーネントであるZend_Soapを使用して、wsdlに基づいてWebサービスを自動的に構築することができます。 PHPのSoapClientの上にラッパーもありますが、これは主にZend Frameworkに命名規則とコーディング規則を収束させるために使用され、多くの追加機能を提供しません。

ただし、非常に具体的なご要望がある場合は、Curlは問題ありません。それが時折失敗し、あなたのシステムが不安定であるならば、それはカールの問題ではありません。サービスまたはシステムが誤って構成されている可能性があります。

基本的にSoapClientは、標準に基づいてXMLを構築します。何らかの理由でXMLを自分で構築すると、カールはOKです。

関連する問題