TOPシステム開発> プラグインの作り方
まるごとPerl!
使ってわかるCatalyst

第7回:Ajaxで登録フォーム
著者:アドウェイズ  加藤 敦   2006/9/25
前のページ  1  2  3
プラグインの作り方

   今回は作りませんでしたが、プラグインの作り方を簡単に紹介したいと思います。

   プラグインを作るのは非常に簡単です。Catalyst::Plugin::*というモジュールを作って、メソッドを実装するだけです(リスト30)。
リスト30:プラグインの作り方
package Catalyst::Plugin::MyPlugin;

sub hoge{
my($c, @args) = @_;
# …
}

1;

   後は、アプリケーションクラスでプラグインを指定すれば、hogeというメソッドをコンテキストオブジェクトから使えるようになります。これだけなら、アプリケーションクラスに実装するのと変わりませんが、プロジェクト間で共通に使えるものならプラグインにするべきですね。

   また、プラグインにオブジェクトが必要で、メソッドを呼ぶたびにオブジェクトを作る必要が無い場合、プラグインでprepareメソッドを定義すれば、コストのかからないようにできます(リスト31)。

リスト31:prepareメソッド
package Catalyst::Plugin::LWP::UA;

use Next;
our $VERSION = 0.01;

sub prepare{
   my $class = shift;
   my $c = $class->NEXT::prepare(@_);
   my $ua = new LWP::UserAgent;
   $c->{'LWP::UserAgent'} = $ua;
   return $c;
}

sub get{
   my($c, $url) = @_;
   my $ua = $c->{'LWP::UserAgent'};
   # …
}

   prepareを使う場合は、約束事として、「useNEXT;」が必要です。また、prepare内でも、

my $c = $class->NEXT::prepare(@_);

が必須で、最後にコンテキストオブジェクトを返さないといけません。

   実際は、prepare処理以外にもCatalystの動作フローの間に入ることができますが、ドキュメントにはそこまで書かれていません。実際のプラグインのソースコードを読むのが一番手っ取り早いかもしれません。


最後に

   Catalystの基本と簡単なアプリケーション作成、プラグインの作り方の簡単な紹介を行いました。

   紹介しきれませんでしたが、Catalystのおいしいところはまだまだあります。便利なプラグインはまだまだたくさんありますし、ヘルパースクリプトを自分で書いて、毎回書いているコードを自動的に生成するようにすることもできます。

   良い事尽くしのように書いてしまいましたが、注意が必要な事もあります。開発が活発に行われているため、仕様が変更されたり、ドキュメントが追い付いていない場合があります。そういうところにはまるとなかなか抜け出せないのですが、そこを抜けてしまえば快適な世界が待っています。Webを当たったり、ソースを読んだりして、乗り越えてください。

   本記事で簡単なアプリケーションは作れるようになれると思いますので、実際に使ってみて、Catalystを楽しんでみて下さい。

前のページ  1  2  3

株式会社アドウェイズ 加藤 敦
著者プロフィール
株式会社アドウェイズ   加藤 敦
アフィリエイトシステムやモバイルサイトの構築などを経て、現在、技術マネージャーとして新規サービスの設計、システムの標準化などに携わる。個人的にCPANモジュールの開発や、オープンソースのプロジェクトに参加している。


INDEX
第7回:Ajaxで登録フォーム
  Ajaxからの登録(/ajax_regist)
  その他のアクション
プラグインの作り方