Zend_Service_StrikeIron-AdvancedUses.xml 4.8 KB

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