FuelPHP で日本の住所を扱うパッケージを作ったはなし

2012/06/26

P1100117.JPG

仕事で日本の住所を扱う機会が多いので、FuelPHP のパッケージの勉強も兼ねて、ひとつ試しに作ってみました。その名も「fuel-jpaddress」!名前超ダサい!

https://github.com/omoon/fuel-jpaddress

今のところできるのは、

  • 都道府県コードから都道府県名を取得
  • 郵便番号から住所を取得

の2つ。

今回は、郵便番号から住所を取得する部分に、以前 @msng さんに教えてもらっていつか試したいと思っていた Google CGI API for Japanese Input を使ってみました。詳しくはこの辺のソース参照のこと。

さて、このパッケージをあなたのアプリでも使いたい場合は、こんな感じになると思います。ここでは、FuelPHP らしく oil コマンドでインストールする方法を紹介します。

config にパッケージの git レポジトリを追加する

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 コマンドでインストール


$ 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 でインストールできる、ということみたいです。

config.php を編集

で、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'));     // 大阪府大阪市北区中津

こんな風に使えるようになるはずです。

では、また。

<< 古い記事