Zend_Service_StrikeIron-Overview.xml 17 KB

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