Zend_Service_StrikeIron-Overview.xml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15157 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.service.strikeiron">
  5. <title>Zend_Service_StrikeIron</title>
  6. <para>
  7. <classname>Zend_Service_StrikeIron</classname> bietet einen PHP 5 Clienten zu den Web Services von StrikeIron. Siehe die folgenden
  8. Sektionen:
  9. </para>
  10. <para>
  11. <itemizedlist>
  12. <listitem><para><xref linkend="zend.service.strikeiron" /></para></listitem>
  13. </itemizedlist>
  14. <itemizedlist>
  15. <listitem><para><xref linkend="zend.service.strikeiron.bundled-services" /></para></listitem>
  16. </itemizedlist>
  17. <itemizedlist>
  18. <listitem><para><xref linkend="zend.service.strikeiron.advanced-uses" /></para></listitem>
  19. </itemizedlist>
  20. </para>
  21. <sect2 id="zend.service.strikeiron.overview">
  22. <title>Übersicht</title>
  23. <para>
  24. <ulink url="http://www.strikeiron.com">StrikeIron</ulink> bietet hunderte von kommerziellen Daten
  25. Services ("Daten als Service") wie z.B. Online Steuer, Wärungsraten, Aktienwerte, Geocodes, Globale
  26. Adresen Prüfung, Yallow/White Pages, MapQuest Fahranleitungen, Dun &amp; Bradstreet Business Credit
  27. Prüfungen, und viele, viele mehr.
  28. </para>
  29. <para>
  30. Jedes StrikeIron Web Service bietet eine standard SOAP (und REST) API, die die Integration und
  31. Handhabung mehrerer Services sehr einfach macht. StrikeIron managt auch die Kundenverrechnung für alle
  32. Services in einem einzelnen Account, was es für Lösungsanbieter perfekt macht. Man kann mit freien
  33. WebServices unter <ulink url="http://www.strikeiron.com/sdp">http://www.strikeiron.com/sdp</ulink> starten.
  34. </para>
  35. <para>
  36. Die Services von StrikeIron können schon alleine durch die
  37. <ulink url="http://us.php.net/soap">PHP 5 SOAP Erweiterung</ulink> verwendet werden. Trotzdem bietet die
  38. Verwendung von StrikeIron auf diesem Weg kein ideales PHP-artiges Interface. Die <classname>Zend_Service_StrikeIron</classname>
  39. Componente bietet einen leichtgewichtigen Layer aufbauend auf der SOAP Erweiterung für die Arbeit mit
  40. den Services von StrikeIron auf einem bequemeren und PHP-artigeren Weg.
  41. </para>
  42. <note>
  43. <para>
  44. Die PHP 5 SOAP Erweiterung muß installiert und aktiviert sein um <classname>Zend_Service_StrikeIron</classname> zu verwenden.
  45. </para>
  46. </note>
  47. <para>
  48. Die <classname>Zend_Service_StrikeIron</classname> Komponente bietet:
  49. <itemizedlist>
  50. <listitem>
  51. <para>
  52. Einen einzigen Punkt für die Konfiguration der eigenen Authentifizierungsdaten für StrikeIron die
  53. durch alle StrikeIron Services hinweg verwendet werden können.
  54. </para>
  55. </listitem>
  56. <listitem>
  57. <para>
  58. Einen standardtisierten Weg um die eigenen StrikeIron Einwahl Informationen wie den Lizenz Status und
  59. die Anzahl von verbleibenden Hits zu einem Service zu erhalten.
  60. </para>
  61. </listitem>
  62. <listitem>
  63. <para>
  64. Die Möglichkeit jedes StrikeIron Service von deren WSDL aus zu verwenden ohne eine PHP Wrapper Klasse
  65. zu erstellen, und die Option einen Wrapper für ein bequemeres Interface zu erstellen.
  66. </para>
  67. </listitem>
  68. <listitem>
  69. <para>
  70. Wrapper für drei populäre StrikeIron Services.
  71. </para>
  72. </listitem>
  73. </itemizedlist>
  74. </para>
  75. </sect2>
  76. <sect2 id="zend.service.strikeiron.registering">
  77. <title>Registrieren mit StrikeIron</title>
  78. <para>
  79. Bevor man mit <classname>Zend_Service_StrikeIron</classname> beginnen kann, muß man sich zuerst für einen StrikeIron
  80. Entwickler Zugang <ulink url="http://strikeiron.com/Register.aspx">registrieren</ulink>.
  81. </para>
  82. <para>
  83. Nach der Registrierung erhält man einen StrikeIron Benutzernamen und ein Passwort. Diese werden
  84. Verwendet wenn man sich auf StrikeIron verbindet indem man <classname>Zend_Service_StrikeIron</classname> verwendet.
  85. </para>
  86. <para>
  87. Man muß sich auch für StrikeIron's Super Data Pack Web Service
  88. <ulink url="http://www.strikeiron.com/ProductDetail.aspx?p=257">anmelden</ulink>.
  89. </para>
  90. <para>
  91. Beide Schritte der Registrierung sind frei und können relativ schnell mit der WebSeite von StrikeIron
  92. durchgeführt werden.
  93. </para>
  94. </sect2>
  95. <sect2 id="zend.service.strikeiron.getting-started">
  96. <title>Beginnen</title>
  97. <para>
  98. Sobald man sich für einen StrikeIron Account
  99. <ulink url="http://strikeiron.com/Register.aspx">registriert</ulink> und für das
  100. <ulink url="http://www.strikeiron.com/ProductDetail.aspx?p=257">Super Data Pack</ulink> angemeldet hat,
  101. ist man für die Benutzung von <classname>Zend_Service_StrikeIron</classname> bereit.
  102. </para>
  103. <para>
  104. StrikeIron besteht aus hunderten von verschiedenen WebServices. <classname>Zend_Service_StrikeIron</classname> kann mit vielen
  105. dieser Services verwendet werden bietet aber nur für drei von Ihnen unterstützte Wrapper:
  106. </para>
  107. <itemizedlist>
  108. <listitem>
  109. <para><link linkend="zend.service.strikeiron.bundled-services.zip-code-information">ZIP Code Informationen</link></para>
  110. </listitem>
  111. <listitem>
  112. <para><link linkend="zend.service.strikeiron.bundled-services.us-address-verification">US Addressen Prüfung</link></para>
  113. </listitem>
  114. <listitem>
  115. <para><link linkend="zend.service.strikeiron.bundled-services.sales-use-tax-basic">Verkaufs- &amp; Steuergrundlagen</link></para>
  116. </listitem>
  117. </itemizedlist>
  118. <para>
  119. Die Klasse <classname>Zend_Service_StrikeIron</classname> bietet einen einfachen Web um die eigenen Account
  120. Informationen von StrikeIron und andere Option im Konstruktor zu spezifizieren. Sie bietet auch eine
  121. Factory Methode die Clients für StrikeIron Services zurück gibt:
  122. <programlisting role="php"><![CDATA[
  123. $strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
  124. 'password' => 'your-password'));
  125. $taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
  126. ]]></programlisting>
  127. </para>
  128. <para>
  129. Die <code>getService()</code> Methode gibt einen Client für irgendein StrikeIron Service zurück das durch
  130. den Namen seiner PHP Wrapper Klasse definiert wurde. In diesem Fall, referiert der Name
  131. <code>SalesUseTaxBasic</code> zu der Wrapper Klasse <classname>Zend_Service_StrikeIron_SalesUseTaxBasic</classname>.
  132. Wrapper sind für drei Services inkludiert und in
  133. <link linkend="zend.service.strikeiron.bundled-services">Bundled Services</link> beschrieben.
  134. </para>
  135. <para>
  136. Die <code>getService()</code> Methode kann auch einen Client für ein StrikeIron Service zurückgeben das
  137. bisher keinen PHP Wrapper hat. Das wird in
  138. <link linkend="zend.service.strikeiron.advanced-uses.services-by-wsdl">Services durch WSDL verwenden</link>
  139. erklärt.
  140. </para>
  141. </sect2>
  142. <sect2 id="zend.service.strikeiron.making-first-query">
  143. <title>Die erste Abfrage durchführen</title>
  144. <para>
  145. Sobald die <code>getService()</code> Methode verwendet wurde um einen Clienten für ein gewünschtes
  146. StrikeIron Service zu erhalten, kann dieser Client verwendet werden durch Aufruf seiner Methoden ganz wie
  147. jedes andere PHP Objekt.
  148. <programlisting role="php"><![CDATA[
  149. $strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
  150. 'password' => 'your-password'));
  151. // Einen Client für das Verkaufs / Steuerbasis Service erhalten
  152. $taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
  153. // Steuerrate für Ontario, Canada abfragen
  154. $rateInfo = $taxBasic->getTaxRateCanada(array('province' => 'ontario'));
  155. echo $rateInfo->province;
  156. echo $rateInfo->abbreviation;
  157. echo $rateInfo->GST;
  158. ]]></programlisting>
  159. Im obigen Beispiel wird die <code>getService()</code> Methode verwendet um einen Client zum
  160. <link linkend="zend.service.strikeiron.bundled-services.sales-use-tax-basic">Verkaufs- &amp; Steuergrundlagen</link>
  161. Service zu erhalten. Das Client Objekt wird in <code>$taxBasic</code> gespeichert.
  162. </para>
  163. <para>
  164. Die <code>getTaxRateCanada()</code> Methode wird dann vom Service aus aufgerufen. Ein assoziatives Array
  165. wird verwendet um der Methode Schlüssel Parameter anzugeben. Das ist der Weg auf dem alle StrikeIron
  166. Methoden aufgerufen werden.
  167. </para>
  168. <para>
  169. Das Ergebnis von <code>getTaxRateCanada()</code> wird in <code>$rateInfo</code> gespeichert und hat
  170. Eigenschaften wie <code>province</code> und <code>GST</code>.
  171. </para>
  172. <para>
  173. Viele der Services von StrikeIron sind so einfach wie das obige Beispiel. Siehe
  174. <link linkend="zend.service.strikeiron.bundled-services">mitgelieferte Services</link> für detailierte
  175. Informationen zu drei der Services von StrikeIron.
  176. </para>
  177. </sect2>
  178. <sect2 id="zend.service.strikeiron.examining-results">
  179. <title>Ergebnisse betrachten</title>
  180. <para>
  181. Wenn man Services von StrikeIron lernt oder versucht fehler zu beheben, ist es oft nützlich das Ergebnis
  182. das von einem Methodenaufruf zurückgegeben wird auszugeben. Das Ergebnis wird immer ien Objekt sein das
  183. eine Instanz von <classname>Zend_Service_StrikeIron_Decorator</classname> ist. Das ist ein kleines
  184. <ulink url="http://en.wikipedia.org/wiki/Decorator_pattern">Dekorator</ulink> Objekt das die Ergebnisse des
  185. Methoden Aufrufs ummantelt.
  186. </para>
  187. <para>
  188. Der einfachste Weg ein Ergebnis vom Service zu betrachten ist die Verwendung der eingebauten PHP Methode
  189. <ulink url="http://www.php.net/print_r">print_r()</ulink>:
  190. <programlisting role="php"><![CDATA[
  191. $strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
  192. 'password' => 'your-password'));
  193. $taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
  194. $rateInfo = $taxBasic->getTaxRateCanada(array('province' => 'ontario'));
  195. print_r($rateInfo);
  196. ?>
  197. Zend_Service_StrikeIron_Decorator Object
  198. (
  199. [_name:protected] => GetTaxRateCanadaResult
  200. [_object:protected] => stdClass Object
  201. (
  202. [abbreviation] => ON
  203. [province] => ONTARIO
  204. [GST] => 0.06
  205. [PST] => 0.08
  206. [total] => 0.14
  207. [HST] => Y
  208. )
  209. )
  210. ]]></programlisting>
  211. </para>
  212. <para>
  213. In der obigen Ausgabe sehen wir das der Dekorator (<code>$rateInfo</code>) ein Objekt ummantelt das
  214. <code>GetTaxRateCanadaResult</code> heißt, und das Ergebnis des Aufrufes von <code>getTaxRateCanada()</code>
  215. ist.
  216. </para>
  217. <para>
  218. Das bedeutet das <code>$rateInfo</code> öffentliche Eigenschaften wie <code>abbreviation</code>,
  219. <code>province</code>, und <code>GST</code> hat. Dieser werden z.B. mit <code>$rateInfo->province</code>
  220. aufgerufen.
  221. </para>
  222. <tip>
  223. <para>
  224. Die Eigenschaften von StrikeIron Ergebnissen beginnen oft mit einem Großbuchstaben wie <code>Foo</code>
  225. oder <code>Bar</code> wobei die meisten PHP Objekt Eigenschaften normalerweise mit einem
  226. Kleinbuchstaben wie <code>foo</code> oder <code>bar</code> beginnen. Der Dekorator wird diesen
  227. Eingriff automatisch durchführen sodas eine Eigenschaft von <code>Foo</code> als <code>foo</code>
  228. gelesen werden kann.
  229. </para>
  230. </tip>
  231. <para>
  232. Wenn man jemals das originale Objekt oder seinen Namen vom Dekorator heraus benötigt können die Methoden
  233. <code>getDecoratedObject()</code> und <code>getDecoratedObjectName()</code> verwendet werden.
  234. </para>
  235. </sect2>
  236. <sect2 id="zend.service.strikeiron.handling-errors">
  237. <title>Fehler handhaben</title>
  238. <para>
  239. Die vorigen Beispiel sind naiv, was bedeutet das keine Handhabung von Fehlern gezeigt wurde. Es ist
  240. möglich das StrikeIron einen Fehler zurückgibt wärend des Aufrufs einer Methode. Selbst fehlerhafte
  241. Account Daten oder ein abgelaufener Zugang kann StrikeIron dazu bringen einen Fehler zu werfen.
  242. </para>
  243. <para>
  244. Eine Ausnahme wird geworfen wenn solch ein Fehler auftritt. Man sollte das berücksichtigen und solche
  245. Ausnahmen fangen wenn man Methodenaufrufe zu einem Service durchführt:
  246. <programlisting role="php"><![CDATA[
  247. $strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
  248. 'password' => 'your-password'));
  249. $taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
  250. try {
  251. $taxBasic->getTaxRateCanada(array('province' => 'ontario'));
  252. } catch (Zend_Service_StrikeIron_Exception $e) {
  253. // Fehler handhaben für Events wie Verbindungsprobleme oder Account Probleme
  254. }
  255. ]]></programlisting>
  256. Die geworfenen Ausnahmen werden immer <classname>Zend_Service_StrikeIron_Exception</classname> sein.
  257. </para>
  258. <para>
  259. Es ist wichtig die Unterschiede zwischen Ausnahmen und normalen fehlgeschlagenen Methodenaufrufen zu
  260. verstehen. Ausnahmen treten für <emphasis>ausgenommene</emphasis> Verhaltenweisen auf, wie z.B. ein
  261. Netzwerk das abstürzt oder ein abgelaufener Account. Fehlgeschlagene Methodenaufrufe die häufig auftreten,
  262. wie z.B. wenn <code>getTaxRateCanada()</code> die angegebene <code>province</code> nicht findet, führen
  263. nicht dazu das Ausnahmen geworfen werden.
  264. </para>
  265. <note>
  266. <para>
  267. Jedesmal wenn ein Methodenaufruf zu einem Service von StrikeIron durchgeführt wird, sollte das
  268. Ergebnis Objekt auf Gültigkeit geprüft werden und man sollte genauso vorsehen eine Ausnahme zu
  269. fangen.
  270. </para>
  271. </note>
  272. <para><!-- inkludiert für Leerzeichen --></para>
  273. </sect2>
  274. <sect2 id="zend.service.strikeiron.checking-subscription">
  275. <title>Den eigenen Account prüfen</title>
  276. <para>
  277. StrikeIron bietet viele verschiedene Services. Einige von Ihnen sind kostenlos, eine sind auf einer
  278. Testbasis vorhanden, und einige sind nur für zahlende Kunden. Wenn StrikeIron verwendet wird, ist es wichtig
  279. auf den Account Status für die Services zu achten die man verwendet und diesen regelmäßig zu prüfen.
  280. </para>
  281. <para>
  282. Jeder StrikeIron Client, der von der <code>getService</code> Methode zurückgegeben wird, hat die Möglichkeit
  283. den Account Status für diesen Service zu prüfen indem die <code>getSubscriptionInfo()</code> Methode
  284. dieses Clients verwendet wird:
  285. <programlisting role="php"><![CDATA[
  286. // Einen Client für das Verkaufs / Steuerbasis Service erhalten
  287. $strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
  288. 'password' => 'your-password'));
  289. $taxBasic = $strikeIron->getService(array('class => 'SalesUseTaxBasic'));
  290. // Prüfe die noch möglichen Zugriffe für das Verkaufs- & Steuerbasis Service
  291. $subscription = $taxBasic->getSubscriptionInfo();
  292. echo $subscription->remainingHits;
  293. ]]></programlisting>
  294. </para>
  295. <para>
  296. Die <code>getSubscriptionInfo()</code> Methode gibt ein Objekt zurück, das typischerweise eine
  297. <code>remainingHits</code> Eigenschaft hat. Es ist wichtig den Status, für jeden Service der verwendet
  298. wird, zu prüfen. Wenn ein Methodenaufruf zu StrikeIron gemacht wird, nachdem die möglichen Zugriffe
  299. aufgebraucht wurden, wird eine Ausnahme auftreten.
  300. </para>
  301. <para>
  302. Das Prüfen des Accounts zu einem Service benötigt keinen Zugriff (hit) auf diesen Server. Jedes Mal wenn
  303. irgendein Methodenaufruf zu einem Service gemacht wurde, wird die Anzahl der möglichen Zugriffe gecached und
  304. dieser gecachete Wert wird durch <code>getSubscriptionInfo()</code> zurückgegeben ohne das noch einmal mit
  305. dem Service eine Verbindung aufgebaut werden muß. Um <code>getSubscriptionInfo()</code> dazu zu bringen
  306. seinen Cache auszuschalten und die Account Informationen nochmals abzufragen, kann
  307. <code>getSubscriptionInfo(true)</code> verwendet werden.
  308. </para>
  309. </sect2>
  310. </sect1>