Perlを使わなきゃならん羽目になったのでMVCフレームワークCatalystここここを見ながら触ってみました。

ちなみに僕はJavaではHibernate + JSP / Taglib + Strutsを使ってるわけですが
  • Model (O-Rマッピング)・・・POJO + Hibernate = Class::DBI
  • View・・・JSP + Taglib = Template-Toolkit
  • Controler・・・Struts Actionクラス = Catalystクラス
みたいな住み分けになってるみたいです。(もちろん、例えばそれぞれのViewにJSF、HTML::Templateなど選択肢はあります。)

で、インストールから開始したわけですが、依存関係にあるモジュールが山のようにあるのでcpanでBundle::CatalystBundle::Catalyst::Everything一発インストール・・・というわけにはいかず、地道に一つづつ解決するのに骨が折れました。

実際のコーディングはcatalyst.plスクリプトでアプリケーションのスケルトンを自動生成して、さらにscripts/[アプリケーション名]_create.plスクリプトでModel、View、Controllerのスケルトンを自動生成してそれぞれ実装するといった流れです。

Strutsのようにそれぞれを結びつけるマッピングファイルみたいなのは存在しないので、シンプルといえばシンプルです。

ざくざくっと作ってみたところ何点か気がついた点と困った点が出てきたのでメモっておきます。

  1. フォームのValidationにはCatalyst::Plugin::FormValidatorを使う。
    my $profile = {
        required => [qw(name email)],
        constraints => {email => 'email',},
        msgs=>{
            prefix=> 'error_',
            format => '%s',
        }
    };
    my $results = $c->form($profile);
    
  2. Catalyst::Plugin::FillInFormとFormValidatorを同時に使うと、FormValidatorでチェックしてエラーがある場合は自動的にFormに値を埋めてくれる。
  3. FormValidatorの正規表現の日本語処理がうまくいかない。
  4. mod_perl 2.0(正確には1.99)環境では一瞬動いているように見えたけど、Requestがうまく処理できていないようで正常には動かなかった。mod_perl 1.x系では問題なし。

といった具合です。

特に日本語周りにはまってゲッソリ気味ですが、克服すればまぁまぁ使えそうな予感です。

              

              

トラックバック(0)

トラックバックURL: http://mt.hide-k.net/mt-tb.cgi/283

コメントする

プロフィール

このブログ記事について

このページは、hideが2005年6月15日 20:48に書いたブログ記事です。

ひとつ前のブログ記事は「分煙対策」です。

次のブログ記事は「僕がLAMPを触って思うこと」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。