Perlを使わなきゃならん羽目になったのでMVCフレームワークCatalystをここやここを見ながら触ってみました。
ちなみに僕はJavaではHibernate + JSP / Taglib + Strutsを使ってるわけですが- Model (O-Rマッピング)・・・POJO + Hibernate = Class::DBI
- View・・・JSP + Taglib = Template-Toolkit
- Controler・・・Struts Actionクラス = Catalystクラス
で、インストールから開始したわけですが、依存関係にあるモジュールが山のようにあるのでcpanでBundle::Catalyst、Bundle::Catalyst::Everything一発インストール・・・というわけにはいかず、地道に一つづつ解決するのに骨が折れました。
実際のコーディングはcatalyst.plスクリプトでアプリケーションのスケルトンを自動生成して、さらにscripts/[アプリケーション名]_create.plスクリプトでModel、View、Controllerのスケルトンを自動生成してそれぞれ実装するといった流れです。
Strutsのようにそれぞれを結びつけるマッピングファイルみたいなのは存在しないので、シンプルといえばシンプルです。
ざくざくっと作ってみたところ何点か気がついた点と困った点が出てきたのでメモっておきます。
- フォームのValidationにはCatalyst::Plugin::FormValidatorを使う。
my $profile = { required => [qw(name email)], constraints => {email => 'email',}, msgs=>{ prefix=> 'error_', format => '%s', } }; my $results = $c->form($profile); - Catalyst::Plugin::FillInFormとFormValidatorを同時に使うと、FormValidatorでチェックしてエラーがある場合は自動的にFormに値を埋めてくれる。
- FormValidatorの正規表現の日本語処理がうまくいかない。
- mod_perl 2.0(正確には1.99)環境では一瞬動いているように見えたけど、Requestがうまく処理できていないようで正常には動かなかった。mod_perl 1.x系では問題なし。
といった具合です。
特に日本語周りにはまってゲッソリ気味ですが、克服すればまぁまぁ使えそうな予感です。

コメントする