URL shorteners have exploded in popularity in the last several years, in large part due
to the social nature of the web and the desire to share links.
Zend_Service_ShortUrl
provides an API for accessing a number of
different URL shortener services, with the ability to both create short URLs as well as
retrieve the original URL.
Adapters provided include:
-
Zend_Service_ShortUrl_JdemCz
, which accesses the jdem.cz service. -
Zend_Service_ShortUrl_TinyUrlCom
, which accesses the tinyurl.com service. -
Zend_Service_ShortUrl_MetamarkNet
, which accesses the metamark.net service. -
Zend_Service_ShortUrl_IsGd
, which accesses the is.gd service. -
Zend_Service_ShortUrl_BitLy
, which accesses the bit.ly service.
Using one of the URL shortener services is straightforward. Each URL shortener follows a
simple interface that defines two methods: shorten()
and
unshorten()
. Instantiate the class, and call the appropriate
method.
$tinyurl = new Zend_Service_ShortUrl_TinyUrlCom(); // Shorten a URL: $short = $tinyurl->shorten('http://framework.zend.com/'); // http://tinyurl.com/rxtuq // Inflate or unshorten a short URL: $long = $tinyurl->unshorten('http://tinyurl.com/rxtuq'); // http://framework.zend.com/
-
shorten( $url );
-
Takes the given
$url
and passes it to the service in order to obtain a shortened URL.If the provided
$url
is invalid, an exception will be raised. -
unshorten( $shortenedUrl );
-
Takes the provided
$shortenedUrl
and passes it to the service in order to obtain the original URL.If the provided
$shortenedUrl
is invalid, an exception will be raised. -
setHttpClient( Zend_Http_Client $httpClient );
-
Use this method to set the HTTP client used for communicating with the service.
-
getHttpClient( );
-
Use this method to access the HTTP client attached to the service. By default, this will lazy-load an instance of
Zend_Http_Client
if no client is yet attached.
The bitly API require that authentication credentials be supplied as query arguments. To get started, you'll need a free bitly user account and apiKey. Signup at: http://bitly.com/a/sign_up
bitly currently also supports the OAuth 2 draft specification. You could provide a
generated OAuth access token to Zend_Service_ShortUrl_BitLy
using setOAuthAccessToken
or as constructor argument.
$bitly = new Zend_Service_ShortUrl_BitLy('username','apiKey'); // Shorten a URL: $short = $bitly->shorten('http://framework.zend.com/'); // http://bit.ly/15Oe0 // Inflate or unshorten a short URL: $long = $bitly->unshorten('http://bit.ly/15Oe0'); // http://framework.zend.com/