「Playアプリケーションを作る」という作業は、基本的に「
MVCのためのファイルを作成する」ということだと考えてよいでしょう。このMVCファイルがまとめられているのが
「app」フォルダです。デフォルトでは、データベース関係の「
Model(モデル)」は用意されていないので、基本的に「
Controller(コントローラー)」と「
View(ビュー)」を理解できれば、デフォルトで作られているアプリケーションの仕組みがわかる、と考えてよいでしょう。
まずは、「
コントローラー」から見ていきましょう。コントローラーは、既に述べたように「
app」フォルダ内の「
controllers」フォルダの中に配置されます。デフォルトでは、この中に「
application.scala」というファイルが1つだけ用意されています。
(※play newでアプリケーションを作成するときに「Java」を選ぶと、ここにはJavaのクラスが作成されます。今回はScalaを選択しましたので、Scalaのスクリプトが用意されます。)下のリスト欄に、その内容を掲載しておきます。これを見ながら、コントローラーというのがどういうものなのか確認していきましょう。
・controllersパッケージに配置される最初にある「
package controllers」というのは、Javaと同様にパッケージを指定するものです。つまり、コントローラーのオブジェクトは「
controllers」というパッケージに配置されるということがわかります。
・play.apiパッケージをインポートするその後に
import文がありますが、これらは「
play.api」および「
play.api.mvc」にあるクラスやオブジェクトを利用するためのものです。Play FrameworkのMVCで利用される基本的なオブジェクト類は、これらのパッケージにまとめられている、と考えてよいでしょう。
※パッケージの違いに注意!これらのパッケージは、JavaとScalaで変わっているので注意が必要です。Javaでは、これらのパッケージはそれぞれ「
play」と「
play.mvc」であるのに対し、Scalaでは「
play.api」「
play.api.mvc」となっています。ここではScalaを利用しているので使用するクラス類はすべて
play.apiパッケージ下におかれていますが、もし「Javaで開発したい」という場合は、パッケージが変わってくるので注意してください。
・Controllerを継承するコントローラーは、
play.api.mvcパッケージにある「
Controller」というクラスを継承して作成します。これでコントローラーとして認識されるようになります。オブジェクトの定義を見ると、
object Application extends Controller ……
こんな具合になっていますね? Scalaでも 「
extends クラス」とすることで、指定のクラスを継承して新たにクラスやオブジェクトを定義することができます。この点、Javaと全く同じですね。