2012/06/26
仕事で日本の住所を扱う機会が多いので、FuelPHP のパッケージの勉強も兼ねて、ひとつ試しに作ってみました。その名も「fuel-jpaddress」!名前超ダサい!
https://github.com/omoon/fuel-jpaddress
今のところできるのは、
の2つ。
今回は、郵便番号から住所を取得する部分に、以前 @msng さんに教えてもらっていつか試したいと思っていた Google CGI API for Japanese Input を使ってみました。詳しくはこの辺のソース参照のこと。
さて、このパッケージをあなたのアプリでも使いたい場合は、こんな感じになると思います。ここでは、FuelPHP らしく oil コマンドでインストールする方法を紹介します。
COREPATH/config/package.php
return array(
'sources' => array(
'github.com/fuel-packages',
),
);
これを、APPPATH/config/package.php に持ってきて、
return array(
'sources' => array(
'github.com/fuel-packages',
'github.com/omoon',
),
);
とします。これで、oil コマンドで インストールできるようになります。
$ oil package install jpaddress
Downloading package: git://github.com/omoon/fuel-jpaddress.git
remote: Counting objects: 30, done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 30 (delta 8), reused 23 (delta 3)
Receiving objects: 100% (30/30), 4.61 KiB, done.
Resolving deltas: 100% (8/8), done.
Cloning into /Users/omoon/Documents/foo/fuel/packages/jpaddress...
こんな感じで先ほど追加したレポジトリからインストールされます。
なお、oil コマンドは、リポジトリの中からパッケージ名が「fuel-hogehoge」となっているものを探しに行くようなので、パッケージを作る時は、「fuel-hogehoge」とする必要があるようです。そうすると、パッケージ名が「hogehoge」と認識され、$ oil package install hogehoge
でインストールできる、ということみたいです。
で、jpadress を APPPATH/config/config.php の always_load の部分に追加します。config も使ってるのでそっちも。
return array(
'always_load' => array(
'packages' => array(
'parser',
'jpaddress', // 追加
),
'config' => array(
'session',
'jpaddress', // 追加
),
)
);
これで、
Jpaddress\Ken::getName(27); // 大阪府
Jpaddress\Ken::getShortName(27); // 大阪
Jpaddress\Jusho::getJushoByZip('531-0071')); // 大阪府大阪市北区中津
Jpaddress\Jusho::getJushoByZip('5310071')); // 大阪府大阪市北区中津
こんな風に使えるようになるはずです。
では、また。