play framework 2.0のちょっとした紹介
DESCRIPTION
Play! Framework 2.0の非常に簡単な紹介。ルーティングとコントローラとビューをほんの少しだけ記載。TRANSCRIPT
Play! Framework 2.0のちょっとした紹介
Play Framework 2.0とは?
● Scala/JavaのWeb Application Framework
– フルスタック。
– Ruby on Railsのような高い生産性● 「ソース修正・保存→ブラウザreload」で
コンパイルが走り処理実行。(サーバ再起動不要)
– VIEWにおいても静的型付けで安全(Scalaに限る)
● 今時の技術を盛り込み済み
– JSON、非同期処理、WebService連携、自動テストサポート
● ※Java EEのお作法に非準拠。
Scala
● JavaVM上で動く静的型付けの関数型/オブジェクト指向言語
– 全て(関数も)がオブジェクト
– 型推論により、冗長な型記述を削減。
– パターンマッチで条件分岐がすごいことに。
– Option型によるnullのラッピング
– Javaのライブラリを呼び出すことができる。
– IDEのサポートが充実してきている。
– Twitter、Foursquare、Linkedin、英紙guardianでも使われている。
– Javaよりもコンパイルの時間がかかる。
動作環境、ラインセンス
● Scala
– JRE 1.5以降
– Scala License(BSDライク)
● Play! Framework 2.0
– JDK 6以降
– Apache License, Version 2.0
環境構築-1
● JDK 6のインストール
– 省略
● Scalaのインストール
– http://www.scala-lang.org/downloads(※2.9以降を推奨。)
● Eclipseのインストール
– 省略
● Scala IDEのインストール
– http://scala-ide.org/download/current.html 参照
環境構築-2
● Play! 2.0 インストール
– http://www.playframework.org/documentation/2.0/Installing
– Zipファイルをダウンロード
– 解凍
– PATHを通す。
– 以上!
新しいアプリケーションを作成-1
myappという名前で新しいアプリケーションを作成
ENTER
新しいアプリケーションを作成-2
テンプレートを選択。ScalaとJavaが選べる。ここではScalaを選択。
新しいアプリケーションを作成-3
テンプレートに基づいてアプリケーションが作られる。
playコンソールを起動
作られたアプリケーションフォルダへ移動。
playコンソールを起動
サーバを起動
サーバを起動。
localhost:9000で起動
ブラウザで確認
Eclipseのプロジェクトに変換
● Playコンソールで
– eclipsify
– と入力すると、● .classpath● .project
– が出力されるので、Eclipseにインポート。
Play!の基本:ルーティング
● /conf/routesファイル
– HTTPメソッド、URIパターン、Action ジェネレータを記述
● 例:GET /hello/:name controllers.Hello.hi(name: String)
– HTTPメソッドがGETで、
– /hello/:nameというURIの場合、
– controllers.Hello.hi(name: String) を呼び出す● :nameは動的に変わる値。● /hello/John というURIの場合、
controllers.Hello.hi(John) を実行
Play!の基本:Action
● play.api.mvc.Action
– play.api.mvc.Requestをplay.api.mvc.Resultに変換する関数。
– リクエストを受け取って、処理結果をクライアントに返す。
– 普通のWebの仕組みですね。
Play!の基本:Controller
● ControllerはActionジェネレータ
– Requestを受け取ってResultを返す関数を書く。
– Controllerの例(controllers/Hello.scala):
hi関数:String型のnameという引数を受け取る。“Hello! :”という文字列に、引数を追加した値を返す。
Okは、HTTPステータスコード「200 OK」、text/plainであるレスポンスボディを返す。
実行結果
/hello/:name
hi関数から返された結果
Play!の基本:view(テンプレート)
● View(テンプレート)はコンパイルされるとScalaの関数になる
– コンパイル時点で型エラーのチェックなどが可能。
Play!の基本:view(テンプレート)の例
● view/greeteings.scala.html
テンプレートの引数
@以降はScalaステートメントと判断される。
Play!の基本:view(テンプレート)呼び出し
hi関数をtemplateを使うように書き換え。
Play!の規約で、views/greeting.scala.htmlはview.shtml.greeting関数にコンパイルされる。Controllerからすると、普通のScala関数の呼び出し。
Play!の基本:view(テンプレート)呼び出し
Play!の基本:テンプレートは関数
● view/greeteings.scala.htmlでおかしな記述をすると
存在しない値を参照
コンパイルエラーになる
Play!を更に学ぶには?
● Play 2.0 documentation
– http://www.playframework.org/documentation/2.0/Home
● サンプルアプリケーション
– バイナリパッケージに同梱
● メーリングリスト
– https://groups.google.com/forum/?hl=en&fromgroups#!forum/play-framework