2
0

Zend_Service_StrikeIron-AdvancedUses.xml 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.service.strikeiron.advanced-uses">
  5. <title>Zend_Service_StrikeIron: Erweiterte Verwendung</title>
  6. <para>
  7. Diese Sektion beschreibt die erweiterte Verwendung von
  8. <classname>Zend_Service_StrikeIron</classname>.
  9. </para>
  10. <sect2 id="zend.service.strikeiron.advanced-uses.services-by-wsdl">
  11. <title>Die Services durch WSDL verwenden</title>
  12. <para>
  13. Für einige StrikeIron Services können <acronym>PHP</acronym> Wrapper Klassen vorhanden
  14. sein, so wie jene die in <link
  15. linkend="zend.service.strikeiron.bundled-services">Bundled Services</link>
  16. beschrieben werden. Trotzdem bietet StrikeIron hunderte von Services und viele von
  17. diesen können nicht verwendbar sein wenn keine spezielle Wrapper Klasse erstellt wird.
  18. </para>
  19. <para>
  20. Um ein StrikeIron Service zu probieren für das keine Wrapper Klasse vorhanden ist, muß
  21. die <property>wsdl</property> Option statt der <property>class</property> Option an
  22. <methodname>getService()</methodname> übergeben werden:
  23. </para>
  24. <programlisting language="php"><![CDATA[
  25. $strikeIron = new Zend_Service_StrikeIron(
  26. array('username' => 'your-username', 'password' => 'your-password')
  27. );
  28. // Erhalte einen generellen Client zum Reverse Phone Lookup Service
  29. $phone = $strikeIron->getService(
  30. array('wsdl' => 'http://ws.strikeiron.com/ReversePhoneLookup?WSDL')
  31. );
  32. $result = $phone->lookup(array('Number' => '(408) 253-8800'));
  33. echo $result->listingName;
  34. // Zend Technologies USA Inc
  35. ]]></programlisting>
  36. <para>
  37. Um StrikeIron Services durch WSDL zu verwenden wird zumindest ein Verständnis für WSDL
  38. Dateien benötigt. StrikeIron hat viele Ressourcen auf Ihren Seiten die hierbei helfen.
  39. Auch <ulink url="http://janschneider.de">Jan Schneider</ulink> vom
  40. <ulink url="http://horde.org">Horde Projekt</ulink> hat eine <ulink
  41. url="http://janschneider.de/news/25/268">kleine <acronym>PHP</acronym>
  42. Routine</ulink> geschrieben die eine WSDL Datei in lesbares <acronym>HTML</acronym>
  43. konvertiert.
  44. </para>
  45. <para>
  46. Es ist zu beachten das nur die Services die in der
  47. <link linkend="zend.service.strikeiron.bundled-services">Mitgelieferten Services</link>
  48. Sektion beschrieben werden auch offiziell unterstützt werden.
  49. </para>
  50. </sect2>
  51. <sect2 id="zend.service.strikeiron.viewing-soap-transactions">
  52. <title>SOAP Transaktionen betrachten</title>
  53. <para>
  54. Die gesamte Kommunikation mit StrikeIron wird durch Verwenden der
  55. <acronym>SOAP</acronym> Erweiterung durchgeführt. Es kann zeitweise nützlich sein das
  56. mit StrikeIron getauschte <acronym>XML</acronym> für Debugging Zwecke zu betrachten.
  57. </para>
  58. <para>
  59. Jeder StrikeIron Client (Subklasse von
  60. <classname>Zend_Service_StrikeIron_Base</classname>) enthält eine
  61. <methodname>getSoapClient()</methodname> Methode um die darunterliegende Instanz von
  62. <classname>SOAPClient</classname> zu retournieren, die für die Kommunikation mit
  63. StrikeIron verwendet wird.
  64. </para>
  65. <para>
  66. <acronym>PHP</acronym>'s <ulink
  67. url="http://www.php.net/manual/de/function.soap-soapclient-construct.php">SOAPClient</ulink>
  68. hat eine <property>trace</property> Option die dazu führt dass das
  69. <acronym>XML</acronym>, das während der letzten Transaktion getauscht wurde, gemerkt
  70. wird. <classname>Zend_Service_StrikeIron</classname> aktiviert die
  71. <property>trace</property> Option nicht standardmäßig aber das kann einfach getan werden
  72. durch Spezifizierung der Option die dazu verwendet wird den
  73. <classname>SOAPClient</classname> Konstruktor zu übergeben.
  74. </para>
  75. <para>
  76. Um die SOAP Transaktion zu betrachten muß die <methodname>getSoapClient()</methodname>
  77. Methode aufgerufen werden um die <classname>SOAPClient</classname> Instanz zu erhalten
  78. und anschließend die entsprechenden Methoden wie <ulink
  79. url="http://www.php.net/manual/de/function.soap-soapclient-getlastrequest.php"><methodname>__getLastRequest()</methodname></ulink>
  80. und <ulink
  81. url="http://www.php.net/manual/de/function.soap-soapclient-getlastresponse.php"><methodname>__getLastRequest()</methodname></ulink>:
  82. aufzurufen:
  83. </para>
  84. <programlisting language="php"><![CDATA[
  85. $strikeIron =
  86. new Zend_Service_StrikeIron(array('username' => 'your-username',
  87. 'password' => 'your-password',
  88. 'options' => array('trace' => true)));
  89. // Erstelle einen Client für das Verkaufs & Verwende Steuer BasisService
  90. $taxBasic = $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));
  91. // Einen Methodenaufruf durchführen
  92. $taxBasic->getTaxRateCanada(array('province' => 'ontario'));
  93. // Die SOAPClient Instanz holen und das XML ansehen
  94. $soapClient = $taxBasic->getSoapClient();
  95. echo $soapClient->__getLastRequest();
  96. echo $soapClient->__getLastResponse();
  97. ]]></programlisting>
  98. </sect2>
  99. </sect1>