[ZF-10089] Zend_Log
[zend.git] / documentation / manual / ja / module_specs / Zend_Service_StrikeIron-AdvancedUses.xml
blob3e9557f2861ec75ff33e74d1fbb5e7e85b44b971
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 20807 -->
4 <sect1 id="zend.service.strikeiron.advanced-uses">
5     <title>Zend_Service_StrikeIron: 応用編</title>
7     <para>
8       このセクションでは、<classname>Zend_Service_StrikeIron</classname>
9       のより進んだ使用法を説明します。
10     </para>
12     <sect2 id="zend.service.strikeiron.advanced-uses.services-by-wsdl">
13       <title>WSDL によるサービスの使用</title>
15       <para>
16         StrikeIron のサービスの中には <acronym>PHP</acronym> のラッパークラスが存在するものもあります。
17         これらについては
18         <link linkend="zend.service.strikeiron.bundled-services">バンドルされているサービス</link>
19         を参照ください。しかし、StrikeIron には何百ものサービスがあり、
20         中には便利なものも多くあります。
21         これらについても、ラッパークラスを作成せずに利用できます。
22       </para>
24       <para>
25         ラッパークラスが存在しない StrikeIron サービスを使用するには、
26         <methodname>getService()</methodname> のオプションに
27         <code>class</code> ではなく <code>wsdl</code> を指定します。
29         <programlisting language="php"><![CDATA[
30 $strikeIron = new Zend_Service_StrikeIron(array('username' => 'あなたのユーザ名',
31                                                 'password' => 'あなたのパスワード'));
33 // Reverse Phone Lookup サービス用の汎用クライアントを取得します
34 $phone = $strikeIron->getService(
35     array('wsdl' => 'http://ws.strikeiron.com/ReversePhoneLookup?WSDL')
38 $result = $phone->lookup(array('Number' => '(408) 253-8800'));
39 echo $result->listingName;
41 // Zend Technologies USA Inc
42 ]]></programlisting>
43       </para>
45       <para>
46         StrikeIron サービスを WSDL から使用するには、
47         WSDL ファイルについての基礎知識が必要です。
48         StrikeIron のサイトには、そのためのリソースも豊富に用意されています。
49         また、
50         <ulink url="http://horde.org">Horde プロジェクト</ulink> の
51         <ulink url="http://janschneider.de">Jan Schneider</ulink> が、
52         WSDL ファイルを読みやすく HTML 形式に変換するための
53         <ulink url="http://janschneider.de/news/25/268">ちょっとした
54         <acronym>PHP</acronym> のルーチン</ulink>
55         を公開しています。
56       </para>
58       <para>
59         公式にサポートしているのは、
60         <link linkend="zend.service.strikeiron.bundled-services">バンドルされているサービス</link>
61         に挙げられているものだけであることに注意しましょう。
62       </para>
64     </sect2>
66     <sect2 id="zend.service.strikeiron.viewing-soap-transactions">
67       <title>SOAP トランザクションの表示</title>
69       <para>
70         StrikeIron との通信は、すべて <acronym>SOAP</acronym> 拡張モジュールを用いて行います。
71         StrikeIron との間でやり取りする <acronym>XML</acronym> の内容を確認できると、
72         デバッグ時に便利です。
73       </para>
75       <para>
76         すべての StrikeIron クライアント (<classname>Zend_Service_StrikeIron_Base</classname>
77         のサブクラス) には <methodname>getSoapClient()</methodname> メソッドが存在します。
78         これは、StrikeIron との通信に使用している
79         <code>SOAPClient</code> のインスタンスを返します。
80       </para>
82       <para>
83         <acronym>PHP</acronym> の
84         <ulink url="http://www.php.net/manual/ja/function.soap-soapclient-construct.php">SOAPClient</ulink>
85         には <code>trace</code> オプションがあり、これを使用すると直前のトランザクションで交換された
86         <acronym>XML</acronym> を取得できます。<classname>Zend_Service_StrikeIron</classname> は、デフォルトでは
87         <code>trace</code> を有効にしません。しかし、<code>SOAPClient</code>
88         に渡すオプションを指定することで、この挙動は簡単に変更できます。
89       </para>
91       <para>
92         <acronym>SOAP</acronym> のトランザクションを見るには、
93         <methodname>getSoapClient()</methodname> メソッドをコールして
94         <code>SOAPClient</code> のインスタンスを取得し、
95         <ulink url="http://www.php.net/manual/ja/function.soap-soapclient-getlastrequest.php"><methodname>__getLastRequest()</methodname></ulink>
96         や
97         <ulink url="http://www.php.net/manual/ja/function.soap-soapclient-getlastresponse.php"><methodname>__getLastRequest()</methodname></ulink>
98         のような適切なメソッドをコールします。
100         <programlisting language="php"><![CDATA[
101 $strikeIron =
102     new Zend_Service_StrikeIron(array('username' => 'あなたのユーザ名',
103                                       'password' => 'あなたのパスワード',
104                                       'options'  => array('trace' => true)));
106 // Sales & Use Tax Basic サービス用のクライアントを取得します
107 $taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
109 // メソッドをコールします
110 $taxBasic->getTaxRateCanada(array('province' => 'ontario'));
112 // SOAPClient のインスタンスを取得し、XML を表示します
113 $soapClient = $taxBasic->getSoapClient();
114 echo $soapClient->__getLastRequest();
115 echo $soapClient->__getLastResponse();
116 ]]></programlisting>
117       </para>
119     </sect2>
120 </sect1>