play framework 2.0のちょっとした紹介

24
Play! Framework 2.0の ちょっとした紹介

Upload: ryo-rktm

Post on 04-Jul-2015

3.727 views

Category:

Technology


2 download

DESCRIPTION

Play! Framework 2.0の非常に簡単な紹介。ルーティングとコントローラとビューをほんの少しだけ記載。

TRANSCRIPT

Page 1: Play framework 2.0のちょっとした紹介

Play! Framework 2.0のちょっとした紹介

Page 2: Play framework 2.0のちょっとした紹介

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のちょっとした紹介

Scala

● JavaVM上で動く静的型付けの関数型/オブジェクト指向言語

– 全て(関数も)がオブジェクト

– 型推論により、冗長な型記述を削減。

– パターンマッチで条件分岐がすごいことに。

– Option型によるnullのラッピング

– Javaのライブラリを呼び出すことができる。

– IDEのサポートが充実してきている。

– Twitter、Foursquare、Linkedin、英紙guardianでも使われている。

– Javaよりもコンパイルの時間がかかる。

Page 4: Play framework 2.0のちょっとした紹介

動作環境、ラインセンス

● Scala

– JRE 1.5以降

– Scala License(BSDライク)

● Play! Framework 2.0

– JDK 6以降

– Apache License, Version 2.0

Page 5: Play framework 2.0のちょっとした紹介

環境構築-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のちょっとした紹介

環境構築-2

● Play! 2.0 インストール

– http://www.playframework.org/documentation/2.0/Installing

– Zipファイルをダウンロード

– 解凍

– PATHを通す。

– 以上!

Page 7: Play framework 2.0のちょっとした紹介

新しいアプリケーションを作成-1

myappという名前で新しいアプリケーションを作成

ENTER

Page 8: Play framework 2.0のちょっとした紹介

新しいアプリケーションを作成-2

テンプレートを選択。ScalaとJavaが選べる。ここではScalaを選択。

Page 9: Play framework 2.0のちょっとした紹介

新しいアプリケーションを作成-3

テンプレートに基づいてアプリケーションが作られる。

Page 10: Play framework 2.0のちょっとした紹介

playコンソールを起動

作られたアプリケーションフォルダへ移動。

playコンソールを起動

Page 11: Play framework 2.0のちょっとした紹介

サーバを起動

サーバを起動。

localhost:9000で起動

Page 12: Play framework 2.0のちょっとした紹介

ブラウザで確認

Page 13: Play framework 2.0のちょっとした紹介

Eclipseのプロジェクトに変換

● Playコンソールで

– eclipsify

– と入力すると、● .classpath● .project

– が出力されるので、Eclipseにインポート。

Page 14: Play framework 2.0のちょっとした紹介

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のちょっとした紹介

Play!の基本:Action

● play.api.mvc.Action

– play.api.mvc.Requestをplay.api.mvc.Resultに変換する関数。

– リクエストを受け取って、処理結果をクライアントに返す。

– 普通のWebの仕組みですね。

Page 16: Play framework 2.0のちょっとした紹介

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のちょっとした紹介

実行結果

/hello/:name

hi関数から返された結果

Page 18: Play framework 2.0のちょっとした紹介

Play!の基本:view(テンプレート)

● View(テンプレート)はコンパイルされるとScalaの関数になる

– コンパイル時点で型エラーのチェックなどが可能。

Page 19: Play framework 2.0のちょっとした紹介

Play!の基本:view(テンプレート)の例

● view/greeteings.scala.html

テンプレートの引数

@以降はScalaステートメントと判断される。

Page 20: Play framework 2.0のちょっとした紹介

Play!の基本:view(テンプレート)呼び出し

hi関数をtemplateを使うように書き換え。

Play!の規約で、views/greeting.scala.htmlはview.shtml.greeting関数にコンパイルされる。Controllerからすると、普通のScala関数の呼び出し。

Page 21: Play framework 2.0のちょっとした紹介

Play!の基本:view(テンプレート)呼び出し

Page 22: Play framework 2.0のちょっとした紹介

Play!の基本:テンプレートは関数

● view/greeteings.scala.htmlでおかしな記述をすると

存在しない値を参照

Page 23: Play framework 2.0のちょっとした紹介

コンパイルエラーになる

Page 24: Play framework 2.0のちょっとした紹介

Play!を更に学ぶには?

● Play 2.0 documentation

– http://www.playframework.org/documentation/2.0/Home

● サンプルアプリケーション

– バイナリパッケージに同梱

● メーリングリスト

– https://groups.google.com/forum/?hl=en&fromgroups#!forum/play-framework