2007年4月29日日曜日

YAPC::Asiaメモ(その3)Building Catalyst Applications

あとで自分で使おうと思ってYAPC::Asia 2007のメモをひとつひとつ書いてみているけれど、どうしても1日あたり1エントリ(かそれ以下)が精一杯。このぶんだと書き終わるころにはYAPC::Asia 2008が始まるのではないだろうか。そうすると一年中YAPCのことを書くことになるな。いやだな。

今回はCatalystを使ってブログのアプリケーションを作ってみましょうというお話。ちなみに、発表者のJonathanは電車男です。

前半はCatalystの基本。
  • MVCの説明
  • Catalystのインストールは時間がかかるからコーヒーでも
  • インストールしたらすぐ立ち上げられる
  • アクションには属性(attribute)がついてdefault :Privateなんて書く。:Localや:Globalもある。これはあまり使われていないPerlの機能を利用したもの。
    • default :Privateは定義されていないアクションに対応したURLのとき呼ばれる
    • sub foo :Localは/fooのURLに対応
    • :Privateは対応するURLがない(例外はdefault、index、begin、end、auto)
    • アクションは正規表現も使える
  • アクションを定義するsubの1行目は必ずmy ($self, $c, @args) = @_;
    • /my/action/foo/bar/bazというURLでactionにアクセスすると、myがパッケージ名、actionがアクション名の場合@argはqw/foo bar baz/に
  • アクションの実行順序はauto->begin->action->end
  • $cのメソッドは省略形が使える。res = response、req = request
ほかのアプリケーションとの連携。

  • TT便利
    • MyApp::C::Root::fooはroot/src/foo.tt2に対応
    • これはいちいち設定しなくてもよい(設定することもできる)
    • [% 変数 %]
    • [% Catalyst.requiest.uri %]
  • DBを使う(DBIC)
    • $ script/blog_create.pl model DBIC DBIC::Schema MyApp::Schema create=static dbi:SQLite:blogdb
    • スキーマファイルをちょっと変えればどのDBにも対応
  • FormBuilder
    • Jonathanのお気に入りモジュール
    • JavaScriptでの入力チェックも自動化。JavaScriptをOFFにしてあってもだいじょうぶ
  • セッション
    • プラグイン使う
    • cookieを使わずにURIでセッション管理もできる(最近の潮流じゃないけど)
    • $c->flashで変数の変化をうまく処理($c->stashのかわり)
  • AJAX
    • 「いまどきAJAXのないweb開発なんてありえない」
    • Jemplate(JavaScriptにおけるTT)
  • その他キャッシュとか認証とか
  • テスト
    • Test::Catalyst qw(MyApp);
会場からの質問が一つもなく気まずくなりそうだったところ、司会者が機転を聞かせて「みなさんすっごくamazedです」と英語でコメントを。amazedは感心した、とかびっくりした、とかいう意味で、だから質問が出ないんです、ということなのだがこれをあのタイミングで言えるとはすごい。今度同じ状況になったときに使わせてもらおう。

0 件のコメント:

コメントを投稿