| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15617 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.service.strikeiron">
- <title>Zend_Service_StrikeIron</title>
- <para>
- <classname>Zend_Service_StrikeIron</classname> bietet einen PHP 5 Clienten zu den Web
- Services von StrikeIron. Siehe die folgenden Sektionen:
- </para>
- <para>
- <itemizedlist>
- <listitem><para><xref linkend="zend.service.strikeiron" /></para></listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para><xref linkend="zend.service.strikeiron.bundled-services" /></para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para><xref linkend="zend.service.strikeiron.advanced-uses" /></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 SOAP (und REST) API, die 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 SOAP Erweiterung</ulink> verwendet werden.
- Trotzdem bietet die Verwendung von StrikeIron auf diesem Weg kein ideales PHP-artiges
- Interface. Die <classname>Zend_Service_StrikeIron</classname> Componente bietet einen
- leichtgewichtigen Layer aufbauend auf der SOAP Erweiterung für die Arbeit mit den Services
- von StrikeIron auf einem bequemeren und PHP-artigeren Weg.
- </para>
- <note>
- <para>
- Die PHP 5 SOAP 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
- PHP 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:
- <programlisting language="php"><![CDATA[
- $strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
- 'password' => 'your-password'));
- $taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
- ]]></programlisting>
- </para>
- <para>
- Die <code>getService()</code> Methode gibt einen Client für irgendein StrikeIron Service
- zurück das durch den Namen seiner PHP Wrapper Klasse definiert wurde. In diesem Fall,
- referiert der Name <code>SalesUseTaxBasic</code> 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 <code>getService()</code> Methode kann auch einen Client für ein StrikeIron Service
- zurückgeben das bisher keinen PHP 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 <code>getService()</code> 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 PHP Objekt.
- <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>
- Im obigen Beispiel wird die <code>getService()</code> 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
- <code>$taxBasic</code> gespeichert.
- </para>
- <para>
- Die <code>getTaxRateCanada()</code> 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 <code>getTaxRateCanada()</code> wird in <code>$rateInfo</code> gespeichert
- und hat Eigenschaften wie <code>province</code> und <code>GST</code>.
- </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
- PHP Methode <ulink url="http://www.php.net/print_r">print_r()</ulink>:
- <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>
- <para>
- In der obigen Ausgabe sehen wir das der Dekorator (<code>$rateInfo</code>) ein Objekt
- ummantelt das <code>GetTaxRateCanadaResult</code> heißt, und das Ergebnis des Aufrufes von
- <code>getTaxRateCanada()</code> ist.
- </para>
- <para>
- Das bedeutet das <code>$rateInfo</code> öffentliche Eigenschaften wie
- <code>abbreviation</code>, <code>province</code>, und <code>GST</code> hat. Dieser werden
- z.B. mit <code>$rateInfo->province</code> aufgerufen.
- </para>
- <tip>
- <para>
- Die Eigenschaften von StrikeIron Ergebnissen beginnen oft mit einem Großbuchstaben wie
- <code>Foo</code> oder <code>Bar</code> wobei die meisten PHP Objekt Eigenschaften
- normalerweise mit einem Kleinbuchstaben wie <code>foo</code> oder <code>bar</code>
- beginnen. Der Dekorator wird diesen Eingriff automatisch durchführen sodas eine
- Eigenschaft von <code>Foo</code> als <code>foo</code> gelesen werden kann.
- </para>
- </tip>
- <para>
- Wenn man jemals das originale Objekt oder seinen Namen vom Dekorator heraus benötigt können
- die Methoden <code>getDecoratedObject()</code> und <code>getDecoratedObjectName()</code>
- 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ärend 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:
- <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>
- 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
- <code>getTaxRateCanada()</code> die angegebene <code>province</code> 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 <code>getService</code> Methode zurückgegeben wird, hat
- die Möglichkeit den Account Status für diesen Service zu prüfen indem die
- <code>getSubscriptionInfo()</code> Methode dieses Clients verwendet wird:
- <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>
- <para>
- Die <code>getSubscriptionInfo()</code> Methode gibt ein Objekt zurück, das typischerweise
- eine <code>remainingHits</code> 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
- <code>getSubscriptionInfo()</code> zurückgegeben ohne das noch einmal mit dem Service eine
- Verbindung aufgebaut werden muß. Um <code>getSubscriptionInfo()</code> dazu zu bringen
- seinen Cache auszuschalten und die Account Informationen nochmals abzufragen, kann
- <code>getSubscriptionInfo(true)</code> verwendet werden.
- </para>
- </sect2>
- </sect1>
|