PLAY! FRAMEWORKについて調べたことをメモしておく
playframeworkのいいところは、Javaでの開発なのにビルド時間がStrutsとかにくらべて、圧倒的に短い。
開発モードのdevモードとコンパイル済みのprodモードがある、速度的には2倍ぐらいの違いがあるが、おすすめはdevモードである。とにかく、ビルド時間が無いと思えるぐらい早い、PHPとかRubyとかつかっているんじゃないかとおもうぐらいだ。
大規模な開発になると、このビルドにかかる時間は無視できなくなる
それに、導入がとても簡単である。xmlで定義を書かなくても全然オッケーな感じだ。
一般の単語であるPLAYをつかっているため、検索に引っかかりにくいようだ。
Play framework は、Railsのような生産性の高い、JavaでもつかえるしScalaでもつかえるフレームワークといったところ。
http://playdocja.appspot.com/documentation/1.2.4/home
本家は、version2.0.1が出ているが、まずはこれを読もう。とても丁寧にかいてあるからだ。
http://playdocja.appspot.com/documentation/1.2.4/cheatsheet/model
英語
http://playcheatsheet.appspot.com/show/ArtemMedeu/armed/play-cheatsheets
http://www.playframework.org/documentation/2.0.1/Home
ダウンロードは下記のアドレスからダウンロードできる。90MBある。ちょっとしたボリュームだ。
http://download.playframework.org/releases/
すでにpythonがインストールされている場合 下記の環境変数を設定する必要があるようです。
そうしないと下記のエラーが出る
'import site' failed; use -v for traceback
SET PYTHONPATH=C:\play-1.2.5\python SET PYTHONHOME=C:\play-1.2.5\python
cd c:\play-2.0.1
play new helloworld
なにやらたりないライブラリをとってきているようだ。
What is the application name?
と聞いてくる。
すでにhelloworldがはいっている
したがってそのままEnterキー
2 を選ぶ、あとでScalaでも同様のことをまなんでみよう。
play run helloworld
this is not play application
とでる。
cd helloworld
..\play run
とやるとうごく。playのパスを環境変数に登録しておいたほうがよさそうだ。
SET PATH=%PATH%;c:\play-2.0.1
localhost:9000
にアクセスする。
裏でコンパイルが走っている模様
もう、ページが出てきた。マニュアルページだ。
コンソールに戻りたくなったので、CTRL+Dで戻る
こんどは
../play
コンソールがでてきた。
run
ってやってみた
うごいた
再びCTRL+D
プロジェクトをエクリプスのプロジェクトにする
こんどは、
eclipsify
おおっエクリプスのプロジェクトできた
エクリプスたちあげて、
[ファイル]-[インポート]-[既存のプロジェクト]
jarファイルがたくさんみえるので、
[ウィンドウ]-[ビューの表示]-[ナビゲータ]
でみるとすっきりとした感じにみえる
http://stackoverflow.com/questions/8204708/how-do-i-bind-a-checkbox-to-a-boolean-in-play-framework
https://gist.github.com/1523390
http://stackoverflow.com/questions/7417321/how-to-submit-a-list-of-objects-in-play-framework
http://www.playframework.org/modules
scaffoldとか、javascript最小化モジュールとかいろいろある
http://www.playframework.org/modules/paginate-head/home
https://github.com/mbknor/play/tree/1.2.4-mbknor-custom-release
http://www.playframework.org/documentation/1.2.1/test
INPUT TYPE="hidden" name="formList[0]" id="formList0" value="bar" />
Java側は変数名を上記のname属性と同一名とし、List型で受け取るようにする。
List formList
http://www.playframework.org/modules/fastergt
http://kjetland.com/blog/2011/11/playframework-new-faster-groovy-template-engine/
http://yosuke-furukawa.hatenablog.com/entry/20111219/1324306476
https://groups.google.com/forum/?fromgroups#!topic/play-framework/fz_iakmj_uc
これをつかえば、レンダリングの仕組みを、コード生成など、いろいろ別用途につかえますね。
http://garbagetown.github.com/blog/2012/07/10/08-57/
private static String getHtml(String version, String id) { String html = null; if (Play.mode == Play.Mode.PROD && !isTextile(version)) { (snip) } else { (snip) Template template = TemplateLoader.load("Documentation/page.html"); Map<String, Object> args = new HashMap<String, Object>(); args.put("request", request); args.put("versions", versions); args.put("version", version); args.put("id", id); args.put("article", article); args.put("navigation", navigation); html = template.render(args); } return html; }
http://swandouble.blogspot.jp/2012/04/playframework.html
#play_ja で検索をするとtwitterで勉強会とかの情報をゲットできるかも