2.0からScalaに対応したWebアプリ開発の人気軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載。今回は、Play 2.0から2.1への移行方法やパラメータのバインド、リバースルーティング、セッション、フラッシュスコープの使い方などを解説します。
前回の記事「Playコントローラ/Action/HTTP Routerの基本的な使い方」では、コントローラの基本的な使用方法について紹介しました。
今回はまず、新しくリリースされたPlay 2.1についての情報と移行方法を紹介します。また、前回紹介できなかった、コントローラ使用方法の続編についても解説します。
前回記事の冒頭でPlay 2.1がリリースされたことをお伝えしました。いままではPlay 2.0を使用してきましたが、これを機にPlay 2.1にアップグレードしましょう。この章ではPlay 2.1での環境構築方法と、Play 2.0アプリのマイグレーション方法を紹介します。
Play 2.1では、バグフィックスと機能追加が行われました。その中で、ランタイムAPIをScala 2.10への移行したことが一番大きい変更だと思います。
また、Playが持つJDBCやAnorm(データストアアクセス用ライブラリ)などのコンポーネントが、sub-projectsとして分割されました。あとはJSON用APIの変更も結構大きいですね。
Play 2.1の変更点については公式ドキュメントを確認してください。
Play 2.1をインストールして開発環境を設定しましょう。ですが、その前に1つ注意点があります。Play 2.1はScala 2.10で動作しますが、いままでの連載で使用してきたScala IDE fro EclipseはScala 2.10に対応していません。今後の本連載で出てくるサンプルをEclipse上で動かしたい場合、この後の手順で説明するようにScala IDEも更新する必要があります。2.10用のScala IDEと2.9x用Scala IDEは、同一のEclipseにインストールできないので、Play 2.0+Eclipseの環境がまだ必要な人は、別のEclipseを使用するようにしてください。
Play 2.0をインストールしたときと同じように、公式のダウンロードページからPlay 2.1系の最新版をダウンロードします(2013年3月30日記事執筆時での最新版は2.1)。
ダウンロードしたzipファイルを解凍し、環境変数PATHへ追加しておきましょう。
もし、Homebrew(Mac用のパッケージ管理システム)を使用してPlay 2.0をインストールしていた場合、2.1への更新は非常に簡単に行えます。
下記のようにupgradeコマンドを使用してPlay frameworkを更新してください。
% brew update % brew upgrade play
※もしEclipseを使用せず、テキストエディタでPlayのコードを記述するのであれば、この手順は必要ありません。
次に、Scala 2.10用のScala IDE for Eclipse(2.1 M3)をインストールしましょう。現状でScala IDE for Eclipseのバージョン2.0.2以前のプラグインをインストールしている場合、アンインストールしておいてください。
その後、記事「EclipseでScalaプログラミングを始めるための基礎知識」の「EclipseプラグインのScala-IDEを使うには」にある手順と同じようにScala IDE for Eclipseのインストールを行います。
ただし、メニューから[Help]→[Install New Software...]を選択して、[Upate Site]を指定する際のロケーションは下記のいずれかにしてください。
プラグインをインストール完了後、Eclipseを再起動すれば、開発環境の準備は完了です。
Play 2.0で作成していたアプリケーションは、そのままではPlay 2.1では動作しません。前回までに作成したgyroアプリケーションを、Play 2.1で動くようにしてみましょう。
公式サイトにマイグレーションガイドがあるので、そこを参考にgyroアプリケーションを移行してみましょう。Play 2.0からPlay 2.1へ移行するには、設定ファイルをいくつか変更すれば簡単に移行できます。
まずは、「gyro/project」ディレクトリにある、「plugins.sbt」を修正します。使用するsbtプラグインのバージョンを変更しましょう。
addSbtPlugin("play" % "sbt-plugin" % "2.1.0")
そして、Build.scalaファイルの修正も行います。importするパッケージと、main変数の作成個所を変更します。引数も以前と微妙に変わってますね。
import play.Project._ import sbt._ import Keys._ import PlayProject._ object ApplicationBuild extends Build { val appName = "gyro" val appVersion = "1.0-SNAPSHOT" val appDependencies = Seq( // Add your project dependencies here, ) val main = play.Project(appName, appVersion, appDependencies).settings( // Add your own project settings here ) }
最後にbuild.propertiesを変更しましょう。sbtのバージョンを修正します。
sbt.version=0.12.2
ファイルの修正が完了したら、「clean」コマンドで余計なファイルを削除し、再起動しましょう。
% play clean % play run
起動が成功したら、Eclipseプロジェクトの更新を行います。Playコンソールを起動し、Eclipseプロジェクト化コマンドを実行しましょう。プロジェクトのEclipse化は、以前「eclipsify」というコマンド名でしたが、Play 2.1からは「eclipse」というコマンド名に変わっています。
#Playコンソール [gyro] $ eclipse with-source=true
もしこれでうまく動かない場合、Play 2.1で新規にアプリケーションを作成し、ソースファイルのコピーをしてください。
Copyright © ITmedia, Inc. All Rights Reserved.