Zend_Service_ShortUrl.xml 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <sect1 id="zend.service.short-url">
  4. <title>Zend_Service_ShortUrl</title>
  5. <sect2 id="zend.service.short-url.intro">
  6. <title>Overview</title>
  7. <para>
  8. URL shorteners have exploded in popularity in the last several years, in large part due
  9. to the social nature of the web and the desire to share links.
  10. <classname>Zend_Service_ShortUrl</classname> provides an API for accessing a number of
  11. different URL shortener services, with the ability to both create short URLs as well as
  12. retrieve the original URL.
  13. </para>
  14. <para>
  15. Adapters provided include:
  16. </para>
  17. <itemizedlist>
  18. <listitem>
  19. <para>
  20. <classname>Zend_Service_ShortUrl_JdemCz</classname>, which accesses the <ulink
  21. url="http://jdem.cz/">jdem.cz</ulink> service.
  22. </para>
  23. </listitem>
  24. <listitem>
  25. <para>
  26. <classname>Zend_Service_ShortUrl_TinyUrlCom</classname>, which accesses the <ulink
  27. url="http://tinyurl.com">tinyurl.com</ulink> service.
  28. </para>
  29. </listitem>
  30. <listitem>
  31. <para>
  32. <classname>Zend_Service_ShortUrl_MetamarkNet</classname>, which accesses the <ulink
  33. url="http://metamark.net/">metamark.net</ulink> service.
  34. </para>
  35. </listitem>
  36. <listitem>
  37. <para>
  38. <classname>Zend_Service_ShortUrl_IsGd</classname>, which accesses the <ulink
  39. url="http://is.gd">is.gd</ulink> service.
  40. </para>
  41. </listitem>
  42. <listitem>
  43. <para>
  44. <classname>Zend_Service_ShortUrl_BitLy</classname>, which accesses the <ulink
  45. url="http://bitly.com">bit.ly</ulink> service.
  46. </para>
  47. </listitem>
  48. </itemizedlist>
  49. </sect2>
  50. <sect2 id="zend.service.short-url.quick-start">
  51. <title>Quick Start</title>
  52. <para>
  53. Using one of the URL shortener services is straightforward. Each URL shortener follows a
  54. simple interface that defines two methods: <methodname>shorten()</methodname> and
  55. <methodname>unshorten()</methodname>. Instantiate the class, and call the appropriate
  56. method.
  57. </para>
  58. <programlisting language="php"><![CDATA[
  59. $tinyurl = new Zend_Service_ShortUrl_TinyUrlCom();
  60. // Shorten a URL:
  61. $short = $tinyurl->shorten('http://framework.zend.com/'); // http://tinyurl.com/rxtuq
  62. // Inflate or unshorten a short URL:
  63. $long = $tinyurl->unshorten('http://tinyurl.com/rxtuq'); // http://framework.zend.com/
  64. ]]></programlisting>
  65. </sect2>
  66. <sect2 id="zend.service.short-url.methods">
  67. <title>Available Methods</title>
  68. <variablelist>
  69. <varlistentry id="zend.service.short-url.methods.shorten">
  70. <term>
  71. <methodsynopsis>
  72. <methodname>shorten</methodname>
  73. <methodparam>
  74. <funcparams>$url</funcparams>
  75. </methodparam>
  76. </methodsynopsis>
  77. </term>
  78. <listitem>
  79. <para>
  80. Takes the given <varname>$url</varname> and passes it to the service in
  81. order to obtain a shortened URL.
  82. </para>
  83. <para>
  84. If the provided <varname>$url</varname> is invalid, an exception will be
  85. raised.
  86. </para>
  87. </listitem>
  88. </varlistentry>
  89. <varlistentry id="zend.service.short-url.methods.unshorten">
  90. <term>
  91. <methodsynopsis>
  92. <methodname>unshorten</methodname>
  93. <methodparam>
  94. <funcparams>$shortenedUrl</funcparams>
  95. </methodparam>
  96. </methodsynopsis>
  97. </term>
  98. <listitem>
  99. <para>
  100. Takes the provided <varname>$shortenedUrl</varname> and passes it to the
  101. service in order to obtain the original URL.
  102. </para>
  103. <para>
  104. If the provided <varname>$shortenedUrl</varname> is invalid, an exception
  105. will be raised.
  106. </para>
  107. </listitem>
  108. </varlistentry>
  109. <varlistentry id="zend.service.short-url.methods.set-http-client">
  110. <term>
  111. <methodsynopsis>
  112. <methodname>setHttpClient</methodname>
  113. <methodparam>
  114. <funcparams>Zend_Http_Client $httpClient</funcparams>
  115. </methodparam>
  116. </methodsynopsis>
  117. </term>
  118. <listitem>
  119. <para>
  120. Use this method to set the HTTP client used for communicating with the
  121. service.
  122. </para>
  123. </listitem>
  124. </varlistentry>
  125. <varlistentry id="zend.service.short-url.methods.get-http-client">
  126. <term>
  127. <methodsynopsis>
  128. <methodname>getHttpClient</methodname>
  129. <methodparam>
  130. <funcparams></funcparams>
  131. </methodparam>
  132. </methodsynopsis>
  133. </term>
  134. <listitem>
  135. <para>
  136. Use this method to access the HTTP client attached to the service. By
  137. default, this will lazy-load an instance of
  138. <classname>Zend_Http_Client</classname> if no client is yet attached.
  139. </para>
  140. </listitem>
  141. </varlistentry>
  142. </variablelist>
  143. </sect2>
  144. <sect2 id="zend.service.short-url.bitly">
  145. <title>Additional Bit.ly Methods</title>
  146. <para>
  147. The bitly API require that authentication credentials be supplied as query arguments.
  148. To get started, you'll need a free bitly user account and apiKey. Signup at:
  149. <ulink url="http://http://bitly.com/a/sign_up">http://bitly.com/a/sign_up</ulink>
  150. </para>
  151. <para>
  152. bitly currently also supports the OAuth 2 draft specification. You could provide a
  153. generated OAuth access token to <classname>Zend_Service_ShortUrl_BitLy</classname>
  154. using <methodname>setOAuthAccessToken</methodname> or as constructor argument.
  155. </para>
  156. <programlisting language="php"><![CDATA[
  157. $bitly = new Zend_Service_ShortUrl_BitLy('username','apiKey');
  158. // Shorten a URL:
  159. $short = $bitly->shorten('http://framework.zend.com/'); // http://bit.ly/15Oe0
  160. // Inflate or unshorten a short URL:
  161. $long = $bitly->unshorten('http://bit.ly/15Oe0'); // http://framework.zend.com/
  162. ]]></programlisting>
  163. <variablelist>
  164. <varlistentry id="zend.service.short-url.bitly.setApiLogin">
  165. <term>
  166. <methodsynopsis>
  167. <methodname>setApiLogin</methodname>
  168. <methodparam>
  169. <funcparams>$login, $apiKey</funcparams>
  170. </methodparam>
  171. </methodsynopsis>
  172. </term>
  173. <listitem>
  174. <para>
  175. Takes the required <varname>$login</varname> username and <varname>$apiKey</varname>
  176. and passes it to the service.
  177. </para>
  178. </listitem>
  179. </varlistentry>
  180. <varlistentry id="zend.service.short-url.bitly.setOAuthAccessToken">
  181. <term>
  182. <methodsynopsis>
  183. <methodname>setOAuthAccessToken</methodname>
  184. <methodparam>
  185. <funcparams>$accessToken</funcparams>
  186. </methodparam>
  187. </methodsynopsis>
  188. </term>
  189. <listitem>
  190. <para>
  191. Use the OAuth <varname>$accessToken</varname> for authentication
  192. </para>
  193. </listitem>
  194. </varlistentry>
  195. </variablelist>
  196. </sect2>
  197. </sect1>