Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

Services_ShortURL_Googl ver.0.2.0βリリース

昨日の話の続きです。
2009年末に作ったServices_ShortURL_Googlは裏技(?)を使っていたため、ちょろっと物議を醸しだした訳ですが、先日公開された公式のAPIを使ったものに書き換えて、バージョン0.2.0としてリリースしました。一応、ベータ版です。

内部処理をAPI呼び出しに変更しただけですので、クラスのAPIに変更はありません。

インストールは

$ sudo pear channel-discover openpear.org
$ sudo pear install -a openpear/Services_ShortURL_Googl-beta
$ 

な感じで。PEAR::Services_ShortURLパッケージのサブパッケージという位置づけは変わりませんので、PEAR::Services_ShortURLは必須です。
また、APIのレスポンスがjson形式のため、これを処理するためにjson拡張に依存しています。ということで、PHP5.2.0以上に対応ということで;-)
使い方は、SVNリポジトリにあるsample.phpのような感じ。

<?php
require_once "Services/ShortURL/Googl.php";

/**
 * Services_ShortURLパッケージに組み込まれれば、
 * Services_ShortURL::factoryメソッドを使うように
 * なるハズ
 *
 * $obj = Services_ShortURL::factory('Googl');
 */
$obj = new Services_ShortURL_Googl();
try {
    $result = $obj->shorten('http://d.hatena.ne.jp/shimooka/');
    echo $result . PHP_EOL;
    echo $obj->expand($result) . PHP_EOL;
} catch (Exception $e) {
    echo $e->getMessage() . PHP_EOL;
    exit;
}

このスクリプトの出力は、

$ php sample.php
http://goo.gl/BuQj
http://d.hatena.ne.jp/shimooka/
$ 

のようになります。
なお、APIキーを利用する場合は、コンストラクタの第1引数に、キー名"key"とする連想配列を渡します。

<?php
require_once "Services/ShortURL/Googl.php";

$obj = new Services_ShortURL_Googl(array('key' => '...api key...'));
            :

今度こそ、Date_Holidays_Japanの時のようにPEAR本家に提案してみるかなぁ。

追記(2011/04/04 15:18)

Services_ShortURL_Googl 0.2.0は、2011/04/04にPEAR;;Services_ShortURL ver.0.3に取り込まれました。