*趣旨 [#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

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS