Maypole Tasting Notesの感想文
http://maypole.perl.org/?About
こうやって進化してきたのだなあと思った。
DBがあって、WebからそこにデータをポストするためにCGIを使う。
- フォームを表示
- データをチェック
- エラーだったらフォームの値を引き継いでチェック結果を表示
- OKならデータをDBに格納
とかやる。データは違ってもやることはだいたい一緒だ。すごく退屈でめんどくさいだけ。
そこで値のチェックを楽にとか、DBへのアクセスを楽にとかする方向に進化する。
そういうモジュールがいっぱいできて、それをまとめるためにフレームワークが誕生する。
なるほど。
この進化は頭だけでなくて身体で理解できた気がした。
というのは、こういう処理をなんとかやらないで済ませたいと考えていたから。
でもこの道はかつて先人たちの通った道なのだなあと。
こういう基本的なことの上に今あるものがあるのだなあと。
-
- -
で、Maypoleだ。
- コントローラはApacheのmod_perlハンドラを使う。Apache::MVCを継承
- ベースURLとかを設定
- 値チェック用にデータの期待値を設定。Class::DBI::FromCGI
- クラス(テーブル)間の関係を定義。Class::DBIのhas_aとかhas_manyとか。またはClass::DBI::Loader::Relationship
- apacheの設定ファイル
- HTMLを書く。Template Toolkit、Maypole::View::TT、factoryにMaypoleが作ったファイル、customに自分が作ったファイル
で、テーブル内容をページャ付きで表示したり関連テーブルの内容を表示したり、データを追加したり編集したり削除したりできる。らしい。テーブルが複雑になると対応できなそう。
-
- -
Class::DBI::Loader - Dynamic definition of Class::DBI sub classes. - metacpan.org
Class::DBI::Loader::Relationship - Easier relationship specification in CDBI::L - metacpan.org
Class::DBI::FromCGI - Update Class::DBI data using CGI::Untaint - metacpan.org
CGI::Untaint - process CGI input parameters - metacpan.org
CGI::Untaint::upload - receive a file upload - metacpan.org