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/documen
             tation/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/documentati
            on/2.0/Home
●   サンプルアプリケーション
       –   バイナリパッケージに同梱
●   メーリングリスト
       –   https://groups.google.com/forum/?
            hl=en&fromgroups#!forum/play-framework

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

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