Playフレームワークをさくっと勉強する

仕事でPlayフレームワークを使っている。これまで自分が使ったことがあるフレームワークは

  • sinatra
  • scalatra
  • compojure(clojure)
  • ridge(社内のPerlのフレームワーク)

などでごつい(?)フレームワークを使ったことがなかったため、慣れるのに苦戦していた。分からなかったらググればいいかと思っていたけれど、色々分からないところも多かったため、ちょっと本を読んで全体像を掴もうとしたのでメモ。厚い本は読む前に力尽きるなと思ったので、以下の軽めの本を読んだ。

Guide to Play2 Scala

Guide to Play2 Scala

コントローラー周り

参考

ビュー周り

  • templateだけど型があるのでちょっと安心
  • 基本的な処理の流れ
    • Actionの実行
    • データをテンプレートへ渡す
    • テンプレートオブジェクトが作成される
    • HTMLがクライアントに返される
  • テンプレートの書き方は普通な感じ
    • includeもできる
  • play.api.data.Formを使うとformとobjectのbindが簡単にできる
    • オブジェクト側でapply/unapplyを用意する
  • mapping関数は複雑なvalidationをさせることもできる

参考

モデル周り

  • playはRDBMSのスキーマの変更をトラッキングしてくれる機能を持っている
    • Evolutionsスクリプト
    • [感想]便利だけど、勝手にやられるの嫌な感じもする...
  • conf/evolutions/defaultディレクトリにスクリプトを保存。連番で付けていく
  • こんな感じで書く
# --- !Ups
create table foo (
  id int(10) not null auto_increment, 
  name varchar(100),
primary key(id));
alter table bar add newColumn varchar(10);
 
# --- !Downs
drop table foo;
alter table bar drop newColumn;
  • # --- !Upsはスキーマの変更内容を記述
  • # --- !Downsは、Ups部分の変更を元に戻すための内容
  • http://localhost:9000にアクセスして、webからボタンをポチポチしていくとSQLが実行されていく...

参考