| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <sect1 id="zend.service.strikeiron.advanced-uses">
- <title>Zend_Service_StrikeIron: 応用編</title>
- <!-- Skip-EN-Revisions: 22768 -->
- <para>注意:このドキュメントでは、英語版のリビジョン 22768 の更新内容をスキップしています。</para>
- <para>
- このセクションでは、<classname>Zend_Service_StrikeIron</classname>
- のより進んだ使用法を説明します。
- </para>
- <sect2 id="zend.service.strikeiron.advanced-uses.services-by-wsdl">
- <title>WSDL によるサービスの使用</title>
- <para>
- StrikeIron のサービスの中には <acronym>PHP</acronym> のラッパークラスが存在するものもあります。
- これらについては
- <link linkend="zend.service.strikeiron.bundled-services">バンドルされているサービス</link>
- を参照ください。しかし、StrikeIron には何百ものサービスがあり、
- 中には便利なものも多くあります。
- これらについても、ラッパークラスを作成せずに利用できます。
- </para>
- <para>
- ラッパークラスが存在しない StrikeIron サービスを使用するには、
- <methodname>getService()</methodname> のオプションに
- <code>class</code> ではなく <code>wsdl</code> を指定します。
- </para>
- <programlisting language="php"><![CDATA[
- $strikeIron = new Zend_Service_StrikeIron(array('username' => 'あなたのユーザ名',
- 'password' => 'あなたのパスワード'));
- // Reverse Phone Lookup サービス用の汎用クライアントを取得します
- $phone = $strikeIron->getService(
- array('wsdl' => 'http://ws.strikeiron.com/ReversePhoneLookup?WSDL')
- );
- $result = $phone->lookup(array('Number' => '(408) 253-8800'));
- echo $result->listingName;
- // Zend Technologies USA Inc
- ]]></programlisting>
- <para>
- StrikeIron サービスを WSDL から使用するには、
- WSDL ファイルについての基礎知識が必要です。
- StrikeIron のサイトには、そのためのリソースも豊富に用意されています。
- また、
- <ulink url="http://horde.org">Horde プロジェクト</ulink> の
- <ulink url="http://janschneider.de">Jan Schneider</ulink> が、
- WSDL ファイルを読みやすく <acronym>HTML</acronym> 形式に変換するための
- <ulink url="http://janschneider.de/news/25/268">ちょっとした
- <acronym>PHP</acronym> のルーチン</ulink>
- を公開しています。
- </para>
- <para>
- 公式にサポートしているのは、
- <link linkend="zend.service.strikeiron.bundled-services">バンドルされているサービス</link>
- に挙げられているものだけであることに注意しましょう。
- </para>
- </sect2>
- <sect2 id="zend.service.strikeiron.viewing-soap-transactions">
- <title>SOAP トランザクションの表示</title>
- <para>
- StrikeIron との通信は、すべて <acronym>SOAP</acronym> 拡張モジュールを用いて行います。
- StrikeIron との間でやり取りする <acronym>XML</acronym> の内容を確認できると、
- デバッグ時に便利です。
- </para>
- <para>
- すべての StrikeIron クライアント (<classname>Zend_Service_StrikeIron_Base</classname>
- のサブクラス) には <methodname>getSoapClient()</methodname> メソッドが存在します。
- これは、StrikeIron との通信に使用している
- <code>SOAPClient</code> のインスタンスを返します。
- </para>
- <para>
- <acronym>PHP</acronym> の
- <ulink url="http://www.php.net/manual/ja/function.soap-soapclient-construct.php">SOAPClient</ulink>
- には <code>trace</code> オプションがあり、これを使用すると直前のトランザクションで交換された
- <acronym>XML</acronym> を取得できます。<classname>Zend_Service_StrikeIron</classname> は、デフォルトでは
- <code>trace</code> を有効にしません。しかし、<code>SOAPClient</code>
- に渡すオプションを指定することで、この挙動は簡単に変更できます。
- </para>
- <para>
- <acronym>SOAP</acronym> のトランザクションを見るには、
- <methodname>getSoapClient()</methodname> メソッドをコールして
- <code>SOAPClient</code> のインスタンスを取得し、
- <ulink url="http://www.php.net/manual/ja/function.soap-soapclient-getlastrequest.php"><methodname>__getLastRequest()</methodname></ulink>
- や
- <ulink url="http://www.php.net/manual/ja/function.soap-soapclient-getlastresponse.php"><methodname>__getLastRequest()</methodname></ulink>
- のような適切なメソッドをコールします。
- </para>
- <programlisting language="php"><![CDATA[
- $strikeIron =
- new Zend_Service_StrikeIron(array('username' => 'あなたのユーザ名',
- 'password' => 'あなたのパスワード',
- 'options' => array('trace' => true)));
- // Sales & Use Tax Basic サービス用のクライアントを取得します
- $taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
- // メソッドをコールします
- $taxBasic->getTaxRateCanada(array('province' => 'ontario'));
- // SOAPClient のインスタンスを取得し、XML を表示します
- $soapClient = $taxBasic->getSoapClient();
- echo $soapClient->__getLastRequest();
- echo $soapClient->__getLastResponse();
- ]]></programlisting>
- </sect2>
- </sect1>
|