目次
Catalyst::Plugin
プラグインもCPANでがしがしインストール。ただし、きちんとメンテナンスされていないプラグインも多いのであまり依存しすぎると痛い目を見るらしいので要注意。(自分もかなり痛い目をみました…)
プラグインのロード
Catalystに読み込むには、アプリケーションのメイン(?)になるモジュールに追加する。ここではHogeという名前でアプリを作ったので、Hoge.pmファイルを開き…、
use Catalyst qw/-Debug ConfigLoader Static::Simple Session Session::Store::FastMmap Session::State::Cookie /;
ここに追加していく。モジュール名のCatalyst::Pluginは省略して、その後ろを書く。
プラグイン自作
まずプラグイン自作よりもプラグインを使わない拡張を考慮してください。Pluginは内部動作の変更も可能なため危険です。理由もなくむやみにPluginを追加することは推奨されていません。
Catalyst::Plugin::Hogehogeというモジュールを作り、
package Catalyst::Plugin::Hogehoge; use strict; sub hoge { $c = shift; # 何か処理 } 1;
この自作プラグインをアプリケーションにロード…
use Catalyst qw/-Debug ConfigLoader Static::Simple Hogehoge /;
コントローラメソッドで…
sub hoge : Local { my ($self, $c) = @_; $c->hoge(); }
hogeメソッドがCatalystコンテキストに追加されました。
Catalyst::Plugin::FillInForm
FillInFormプラグインは、フォームに値を埋め込んでくれます。Edit画面などで便利
$c->fillform;
$c→req→parametersからデータを取得して埋め込んでくれます。
$c->fillform( \%data_hash );
指定のハッシュデータをフォームに埋め込みます。
fillformメソッドは、テンプレートへforwardした後に呼び出します。
Catalyst::Plugin::FillInForm::ForceUTF8
FillInFormは日本語が通らないっぽい。これを使えばUTF8で使えるようだ。
Catalyst::Plugin::FormValidator::Simple
FormValidator::SimpleプラグインはCatalystでFormValidator::Simpleを使えるようにするプラグイン。
こいつらを入れておくとなお便利
エラーメッセージファイルの指定、
validator: profiles: 'profiles.yml' messages: 'messages.yml'
mod_perlでは死ぬのでこう書く
validator: profiles: __path_to(profiles.yml)__ messages: __path_to(messages.yml)__
Catalyst::Plugin::Email::Japanese
http://search.cpan.org/perldoc?Catalyst::Plugin::Email::Japanese
テンプレートツールキットを使ってメール本文を作成し、メール送信する便利なプラグイン。
Catalyst::Plugin::Charsets::Japanese
http://search.cpan.org/perldoc?Catalyst::Plugin::Charsets::Japanese
リクエストパラメータのデコード、レスポンスヘッダのエンコーディング指定を行ってくれる。INがUTF8のとき、リクエストパラメータの全角ハイフンが文字化けする問題がある。これはJcodeで半角カタカナを全角カタカナに変換しているため。すべてUTF8な環境ならCatalyst::Plugin::Unicodeを使った方がいいかも。