| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.service.strikeiron">
- <title>Zend_Service_StrikeIron</title>
- <para>
- <classname>Zend_Service_StrikeIron</classname> bietet einen <acronym>PHP</acronym> 5
- Clienten zu den Web Services von StrikeIron. Siehe die folgenden Sektionen:
- </para>
- <para>
- <itemizedlist>
- <listitem>
- <para><link linkend="zend.service.strikeiron">Zend_Service_StrikeIron</link></para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <link linkend="zend.service.strikeiron.bundled-services">Gebündelte
- Services</link>
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <link linkend="zend.service.strikeiron.advanced-uses">Fortgeschrittene
- Benutzung</link>
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <sect2 id="zend.service.strikeiron.overview">
- <title>Übersicht</title>
- <para>
- <ulink url="http://www.strikeiron.com">StrikeIron</ulink> bietet hunderte von
- kommerziellen Daten Services ("Daten als Service") wie z.B. Online Steuer, Wärungsraten,
- Aktienwerte, Geocodes, Globale Adresen Prüfung, Yallow/White Pages, MapQuest
- Fahranleitungen, Dun & Bradstreet Business Credit Prüfungen, und viele, viele mehr.
- </para>
- <para>
- Jedes StrikeIron Web Service bietet eine standard <acronym>SOAP</acronym> (und REST)
- <acronym>API</acronym>, welche die Integration und Handhabung mehrerer Services sehr
- einfach macht. StrikeIron managt auch die Kundenverrechnung für alle Services in einem
- einzelnen Account, was es für Lösungsanbieter perfekt macht. Man kann mit freien
- WebServices unter <ulink
- url="http://www.strikeiron.com/sdp">http://www.strikeiron.com/sdp</ulink> starten.
- </para>
- <para>
- Die Services von StrikeIron können schon alleine durch die
- <ulink url="http://us.php.net/soap">PHP 5 <acronym>SOAP</acronym> Erweiterung</ulink>
- verwendet werden. Trotzdem bietet die Verwendung von StrikeIron auf diesem Weg kein
- ideales <acronym>PHP</acronym>-artiges Interface. Die
- <classname>Zend_Service_StrikeIron</classname> Componente bietet einen leichtgewichtigen
- Layer aufbauend auf der <acronym>SOAP</acronym> Erweiterung für die Arbeit mit den
- Services von StrikeIron auf einem bequemeren und <acronym>PHP</acronym>-artigeren Weg.
- </para>
- <note>
- <para>
- Die <acronym>PHP</acronym> 5 <acronym>SOAP</acronym> Erweiterung muß installiert und
- aktiviert sein um <classname>Zend_Service_StrikeIron</classname> zu verwenden.
- </para>
- </note>
- <para>
- Die <classname>Zend_Service_StrikeIron</classname> Komponente bietet:
- <itemizedlist>
- <listitem>
- <para>
- Einen einzigen Punkt für die Konfiguration der eigenen
- Authentifizierungsdaten für StrikeIron die durch alle StrikeIron Services
- hinweg verwendet werden können.
- </para>
- </listitem>
- <listitem>
- <para>
- Einen standardtisierten Weg um die eigenen StrikeIron Einwahl Informationen
- wie den Lizenz Status und die Anzahl von verbleibenden Hits zu einem Service
- zu erhalten.
- </para>
- </listitem>
- <listitem>
- <para>
- Die Möglichkeit jedes StrikeIron Service von deren WSDL aus zu verwenden
- ohne eine <acronym>PHP</acronym> Wrapper Klasse zu erstellen, und die Option
- einen Wrapper für ein bequemeres Interface zu erstellen.
- </para>
- </listitem>
- <listitem>
- <para>
- Wrapper für drei populäre StrikeIron Services.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- </sect2>
- <sect2 id="zend.service.strikeiron.registering">
- <title>Registrieren mit StrikeIron</title>
- <para>
- Bevor man mit <classname>Zend_Service_StrikeIron</classname> beginnen kann, muß man sich
- zuerst für einen StrikeIron Entwickler Zugang <ulink
- url="http://strikeiron.com/Register.aspx">registrieren</ulink>.
- </para>
- <para>
- Nach der Registrierung erhält man einen StrikeIron Benutzernamen und ein Passwort. Diese
- werden Verwendet wenn man sich auf StrikeIron verbindet indem man
- <classname>Zend_Service_StrikeIron</classname> verwendet.
- </para>
- <para>
- Man muß sich auch für StrikeIron's Super Data Pack Web Service
- <ulink url="http://www.strikeiron.com/ProductDetail.aspx?p=257">anmelden</ulink>.
- </para>
- <para>
- Beide Schritte der Registrierung sind frei und können relativ schnell mit der WebSeite
- von StrikeIron durchgeführt werden.
- </para>
- </sect2>
- <sect2 id="zend.service.strikeiron.getting-started">
- <title>Beginnen</title>
- <para>
- Sobald man sich für einen StrikeIron Account
- <ulink url="http://strikeiron.com/Register.aspx">registriert</ulink> und für das <ulink
- url="http://www.strikeiron.com/ProductDetail.aspx?p=257">Super Data Pack</ulink>
- angemeldet hat, ist man für die Benutzung von
- <classname>Zend_Service_StrikeIron</classname> bereit.
- </para>
- <para>
- StrikeIron besteht aus hunderten von verschiedenen WebServices.
- <classname>Zend_Service_StrikeIron</classname> kann mit vielen dieser Services verwendet
- werden bietet aber nur für drei von Ihnen unterstützte Wrapper:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <link
- linkend="zend.service.strikeiron.bundled-services.zip-code-information">ZIP
- Code Informationen</link>
- </para>
- </listitem>
- <listitem>
- <para>
- <link
- linkend="zend.service.strikeiron.bundled-services.us-address-verification">US
- Addressen Prüfung</link>
- </para>
- </listitem>
- <listitem>
- <para>
- <link
- linkend="zend.service.strikeiron.bundled-services.sales-use-tax-basic">Verkaufs-
- & Steuergrundlagen</link>
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Die Klasse <classname>Zend_Service_StrikeIron</classname> bietet einen einfachen Web um
- die eigenen Account Informationen von StrikeIron und andere Option im Konstruktor zu
- spezifizieren. Sie bietet auch eine Factory Methode die Clients für StrikeIron Services
- zurück gibt:
- </para>
- <programlisting language="php"><![CDATA[
- $strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
- 'password' => 'your-password'));
- $taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
- ]]></programlisting>
- <para>
- Die <methodname>getService()</methodname> Methode gibt einen Client für irgendein
- StrikeIron Service zurück das durch den Namen seiner <acronym>PHP</acronym> Wrapper
- Klasse definiert wurde. In diesem Fall, referiert der Name 'SalesUseTaxBasic'
- zu der Wrapper Klasse <classname>Zend_Service_StrikeIron_SalesUseTaxBasic</classname>.
- Wrapper sind für drei Services inkludiert und in <link
- linkend="zend.service.strikeiron.bundled-services">Bundled Services</link>
- beschrieben.
- </para>
- <para>
- Die <methodname>getService()</methodname> Methode kann auch einen Client für ein
- StrikeIron Service zurückgeben das bisher keinen <acronym>PHP</acronym> Wrapper hat. Das
- wird in <link linkend="zend.service.strikeiron.advanced-uses.services-by-wsdl">Services
- durch WSDL verwenden</link> erklärt.
- </para>
- </sect2>
- <sect2 id="zend.service.strikeiron.making-first-query">
- <title>Die erste Abfrage durchführen</title>
- <para>
- Sobald die <methodname>getService()</methodname> Methode verwendet wurde um einen
- Clienten für ein gewünschtes StrikeIron Service zu erhalten, kann dieser Client
- verwendet werden durch Aufruf seiner Methoden ganz wie jedes andere
- <acronym>PHP</acronym> Objekt.
- </para>
- <programlisting language="php"><![CDATA[
- $strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
- 'password' => 'your-password'));
- // Einen Client für das Verkaufs / Steuerbasis Service erhalten
- $taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
- // Steuerrate für Ontario, Canada abfragen
- $rateInfo = $taxBasic->getTaxRateCanada(array('province' => 'ontario'));
- echo $rateInfo->province;
- echo $rateInfo->abbreviation;
- echo $rateInfo->GST;
- ]]></programlisting>
- <para>
- Im obigen Beispiel wird die <methodname>getService()</methodname> Methode verwendet um
- einen Client zum <link
- linkend="zend.service.strikeiron.bundled-services.sales-use-tax-basic">Verkaufs-
- & Steuergrundlagen</link> Service zu erhalten. Das Client Objekt wird in
- <varname>$taxBasic</varname> gespeichert.
- </para>
- <para>
- Die <methodname>getTaxRateCanada()</methodname> Methode wird dann vom Service aus
- aufgerufen. Ein assoziatives Array wird verwendet um der Methode Schlüssel Parameter
- anzugeben. Das ist der Weg auf dem alle StrikeIron Methoden aufgerufen werden.
- </para>
- <para>
- Das Ergebnis von <methodname>getTaxRateCanada()</methodname> wird in
- <varname>$rateInfo</varname> gespeichert und hat Eigenschaften wie
- <property>province</property> und <constant>GST</constant>.
- </para>
- <para>
- Viele der Services von StrikeIron sind so einfach wie das obige Beispiel. Siehe
- <link linkend="zend.service.strikeiron.bundled-services">mitgelieferte Services</link>
- für detailierte Informationen zu drei der Services von StrikeIron.
- </para>
- </sect2>
- <sect2 id="zend.service.strikeiron.examining-results">
- <title>Ergebnisse betrachten</title>
- <para>
- Wenn man Services von StrikeIron lernt oder versucht fehler zu beheben, ist es oft
- nützlich das Ergebnis das von einem Methodenaufruf zurückgegeben wird auszugeben. Das
- Ergebnis wird immer ien Objekt sein das eine Instanz von
- <classname>Zend_Service_StrikeIron_Decorator</classname> ist. Das ist ein kleines <ulink
- url="http://en.wikipedia.org/wiki/Decorator_pattern">Dekorator</ulink> Objekt das
- die Ergebnisse des Methoden Aufrufs ummantelt.
- </para>
- <para>
- Der einfachste Weg ein Ergebnis vom Service zu betrachten ist die Verwendung der
- eingebauten <acronym>PHP</acronym> Methode <ulink
- url="http://www.php.net/print_r">print_r()</ulink>:
- </para>
- <programlisting language="php"><![CDATA[
- $strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
- 'password' => 'your-password'));
- $taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
- $rateInfo = $taxBasic->getTaxRateCanada(array('province' => 'ontario'));
- print_r($rateInfo);
- ?>
- Zend_Service_StrikeIron_Decorator Object
- (
- [_name:protected] => GetTaxRateCanadaResult
- [_object:protected] => stdClass Object
- (
- [abbreviation] => ON
- [province] => ONTARIO
- [GST] => 0.06
- [PST] => 0.08
- [total] => 0.14
- [HST] => Y
- )
- )
- ]]></programlisting>
- <para>
- In der obigen Ausgabe sehen wir das der Dekorator (<varname>$rateInfo</varname>) ein
- Objekt ummantelt das <classname>GetTaxRateCanadaResult</classname> heißt, und das
- Ergebnis des Aufrufes von <methodname>getTaxRateCanada()</methodname> ist.
- </para>
- <para>
- Das bedeutet das <varname>$rateInfo</varname> öffentliche Eigenschaften wie
- <property>abbreviation</property>, <property>province</property>, und
- <constant>GST</constant> hat. Dieser werden z.B. mit
- <command>$rateInfo->province</command> aufgerufen.
- </para>
- <tip>
- <para>
- Die Eigenschaften von StrikeIron Ergebnissen beginnen oft mit einem Großbuchstaben
- wie <property>Foo</property> oder <property>Bar</property> wobei die meisten
- <acronym>PHP</acronym> Objekt Eigenschaften normalerweise mit einem Kleinbuchstaben
- wie <property>foo</property> oder <property>bar</property> beginnen. Der Dekorator
- wird diesen Eingriff automatisch durchführen sodas eine Eigenschaft von
- <property>Foo</property> als <property>foo</property> gelesen werden kann.
- </para>
- </tip>
- <para>
- Wenn man jemals das originale Objekt oder seinen Namen vom Dekorator heraus benötigt
- können die Methoden <methodname>getDecoratedObject()</methodname> und
- <methodname>getDecoratedObjectName()</methodname> verwendet werden.
- </para>
- </sect2>
- <sect2 id="zend.service.strikeiron.handling-errors">
- <title>Fehler handhaben</title>
- <para>
- Die vorigen Beispiel sind naiv, was bedeutet das keine Handhabung von Fehlern gezeigt
- wurde. Es ist möglich das StrikeIron einen Fehler zurückgibt während des Aufrufs einer
- Methode. Selbst fehlerhafte Account Daten oder ein abgelaufener Zugang kann StrikeIron
- dazu bringen einen Fehler zu werfen.
- </para>
- <para>
- Eine Ausnahme wird geworfen wenn solch ein Fehler auftritt. Man sollte das
- berücksichtigen und solche Ausnahmen fangen wenn man Methodenaufrufe zu einem Service
- durchführt:
- </para>
- <programlisting language="php"><![CDATA[
- $strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
- 'password' => 'your-password'));
- $taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
- try {
- $taxBasic->getTaxRateCanada(array('province' => 'ontario'));
- } catch (Zend_Service_StrikeIron_Exception $e) {
- // Fehler handhaben für Events wie Verbindungsprobleme oder Account Probleme
- }
- ]]></programlisting>
- <para>
- Die geworfenen Ausnahmen werden immer
- <classname>Zend_Service_StrikeIron_Exception</classname> sein.
- </para>
- <para>
- Es ist wichtig die Unterschiede zwischen Ausnahmen und normalen fehlgeschlagenen
- Methodenaufrufen zu verstehen. Ausnahmen treten für <emphasis>ausgenommene</emphasis>
- Verhaltenweisen auf, wie z.B. ein Netzwerk das abstürzt oder ein abgelaufener Account.
- Fehlgeschlagene Methodenaufrufe die häufig auftreten, wie z.B. wenn
- <methodname>getTaxRateCanada()</methodname> die angegebene <property>province</property>
- nicht findet, führen nicht dazu das Ausnahmen geworfen werden.
- </para>
- <note>
- <para>
- Jedesmal wenn ein Methodenaufruf zu einem Service von StrikeIron durchgeführt wird,
- sollte das Ergebnis Objekt auf Gültigkeit geprüft werden und man sollte genauso
- vorsehen eine Ausnahme zu fangen.
- </para>
- </note>
- <para><!-- inkludiert für Leerzeichen --></para>
- </sect2>
- <sect2 id="zend.service.strikeiron.checking-subscription">
- <title>Den eigenen Account prüfen</title>
- <para>
- StrikeIron bietet viele verschiedene Services. Einige von Ihnen sind kostenlos, eine
- sind auf einer Testbasis vorhanden, und einige sind nur für zahlende Kunden. Wenn
- StrikeIron verwendet wird, ist es wichtig auf den Account Status für die Services zu
- achten die man verwendet und diesen regelmäßig zu prüfen.
- </para>
- <para>
- Jeder StrikeIron Client, der von der <methodname>getService()</methodname> Methode
- zurückgegeben wird, hat die Möglichkeit den Account Status für diesen Service zu prüfen
- indem die <methodname>getSubscriptionInfo()</methodname> Methode dieses Clients
- verwendet wird:
- </para>
- <programlisting language="php"><![CDATA[
- // Einen Client für das Verkaufs / Steuerbasis Service erhalten
- $strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
- 'password' => 'your-password'));
- $taxBasic = $strikeIron->getService(array('class => 'SalesUseTaxBasic'));
- // Prüfe die noch möglichen Zugriffe für das Verkaufs- & Steuerbasis Service
- $subscription = $taxBasic->getSubscriptionInfo();
- echo $subscription->remainingHits;
- ]]></programlisting>
- <para>
- Die <methodname>getSubscriptionInfo()</methodname> Methode gibt ein Objekt zurück, das
- typischerweise eine <property>remainingHits</property> Eigenschaft hat. Es ist wichtig
- den Status, für jeden Service der verwendet wird, zu prüfen. Wenn ein Methodenaufruf zu
- StrikeIron gemacht wird, nachdem die möglichen Zugriffe aufgebraucht wurden, wird eine
- Ausnahme auftreten.
- </para>
- <para>
- Das Prüfen des Accounts zu einem Service benötigt keinen Zugriff (hit) auf diesen
- Server. Jedes Mal wenn irgendein Methodenaufruf zu einem Service gemacht wurde, wird die
- Anzahl der möglichen Zugriffe gecached und dieser gecachete Wert wird durch
- <methodname>getSubscriptionInfo()</methodname> zurückgegeben ohne das noch einmal mit
- dem Service eine Verbindung aufgebaut werden muß. Um
- <methodname>getSubscriptionInfo()</methodname> dazu zu bringen seinen Cache
- auszuschalten und die Account Informationen nochmals abzufragen, kann
- <methodname>getSubscriptionInfo(true)</methodname> verwendet werden.
- </para>
- </sect2>
- </sect1>
|