- 追加された行はこの色です。
- 削除された行はこの色です。
*趣旨 [#ucb191c0]
PLAY! FRAMEWORKについて調べたことをメモしておく
playframeworkのいいところは、Javaでの開発なのにビルド時間がStrutsとかにくらべて、圧倒的に短い。
開発モードのdevモードとコンパイル済みのprodモードがある、速度的には2倍ぐらいの違いがあるが、おすすめはdevモードである。とにかく、ビルド時間が無いと思えるぐらい早い、PHPとかRubyとかつかっているんじゃないかとおもうぐらいだ。
大規模な開発になると、このビルドにかかる時間は無視できなくなる
それに、導入がとても簡単である。xmlで定義を書かなくても全然オッケーな感じだ。
一般の単語であるPLAYをつかっているため、検索に引っかかりにくいようだ。
*目次 [#qde659da]
#contents
*Play!の概要 [#a98bb4bb]
Play framework は、Railsのような生産性の高い、JavaでもつかえるしScalaでもつかえるフレームワークといったところ。
*リンク [#w18fc933]
**日本語の分かりやすいサイト [#m272e530]
http://playdocja.appspot.com/documentation/1.2.4/home
本家は、version2.0.1が出ているが、まずはこれを読もう。とても丁寧にかいてあるからだ。
**チートシート(よくつかうコマンド一覧) [#f131ac2b]
http://playdocja.appspot.com/documentation/1.2.4/cheatsheet/model
英語
http://playcheatsheet.appspot.com/show/ArtemMedeu/armed/play-cheatsheets
**2.0のドキュメント(英語) [#v922396b]
http://www.playframework.org/documentation/2.0.1/Home
**ダウンロード [#oc3c912b]
ダウンロードは下記のアドレスからダウンロードできる。90MBある。ちょっとしたボリュームだ。
http://download.playframework.org/releases/
*playのインストールをしてみる実況 [#o24a456d]
**windowsで1.2.5をインストールしてみる [#k489869f]
すでにpythonがインストールされている場合
下記の環境変数を設定する必要があるようです。
そうしないと下記のエラーが出る
'import site' failed; use -v for traceback
***例 [#f96ceff1]
SET PYTHONPATH=C:\play-1.2.5\python
SET PYTHONHOME=C:\play-1.2.5\python
**2.0.1の場合 [#j0e82a56]
cd c:\play-2.0.1
play new helloworld
なにやらたりないライブラリをとってきているようだ。
What is the application name?
と聞いてくる。
すでにhelloworldがはいっている
したがってそのままEnterキー
-1 ... Scala
-2 ... Java
-3 ... empty
2 を選ぶ、あとでScalaでも同様のことをまなんでみよう。
**動作確認 [#yb42f698]
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
プロジェクトをエクリプスのプロジェクトにする
**エクリプスで開発 [#h0aec330]
こんどは、
eclipsify
おおっエクリプスのプロジェクトできた
エクリプスたちあげて、
[ファイル]-[インポート]-[既存のプロジェクト]
jarファイルがたくさんみえるので、
[ウィンドウ]-[ビューの表示]-[ナビゲータ]
でみるとすっきりとした感じにみえる
*NetBeansで動かす記事 [#a9d7b225]
https://blogs.oracle.com/geertjan/entry/play_in_netbeans_ide_7
*チェックボックスの書き方 [#bc37d927]
http://stackoverflow.com/questions/8204708/how-do-i-bind-a-checkbox-to-a-boolean-in-play-framework
*Play Framework で OpenID に接続して、認証後のユーザ情報をセッションに格納するサンプルコード [#xdbec0d3]
https://gist.github.com/1523390
*複数行の取り扱いについて [#b8bb101e]
http://stackoverflow.com/questions/7417321/how-to-submit-a-list-of-objects-in-play-framework
*モジュール [#h9d64531]
http://www.playframework.org/modules
scaffoldとか、javascript最小化モジュールとかいろいろある
scaffoldはplay2.0では動作しないようだ。モジュールを使うときには、対応するバージョンを調べたほうがいい。
**ページ処理モジュール? [#k8caa31d]
http://www.playframework.org/modules/paginate-head/home
*play frameworkのバッチあてた版のダウンロード先 [#y06811dc]
https://github.com/mbknor/play/tree/1.2.4-mbknor-custom-release
*テスト [#t92f06bf]
http://www.playframework.org/documentation/1.2.1/test
*scaffold [#j978d9dc]
http://yono05.wordpress.com/2011/11/03/play-scaffold%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F/
*フォームからのデータの受け取り方法 [#i62ad3c7]
**配列 [#a9eab9ea]
<INPUT TYPE="hidden" name="formList[0]" id="formList0" value="bar" />
Java側は変数名を上記のname属性と同一名とし、List型で受け取るようにする。
List formList
*高速なテンプレートエンジン [#c05520f5]
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
*レンダリング結果の取得 [#c3872dde]
これをつかえば、レンダリングの仕組みを、コード生成など、いろいろ別用途につかえますね。
**情報源 [#qff27dac]
http://garbagetown.github.com/blog/2012/07/10/08-57/
**コード [#xc1bdd6b]
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;
}
*Playframeworkでダウンロード後にファイル削除 [#uf60760e]
http://swandouble.blogspot.jp/2012/04/playframework.html
*勉強会 [#t4eeb853]
#play_ja で検索をするとtwitterで勉強会とかの情報をゲットできるかも
*GAEにデプロイ [#aa49e320]
http://www43.atwiki.jp/ktlavans/pages/132.html
*go言語を使ったplayframework [#o4ffb425]
http://robfig.github.io/revel/
*go 言語のその他のweb frameworkについてのリンク [#le97edf4]
http://stackoverflow.com/questions/12591445/what-web-framework-to-use-while-developing-in-go-language