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