Playアプリケーションの仕組みを知ろう! (2/6)
作成:2013-01-14 10:37
更新:2013-01-14 10:37
更新:2013-01-14 10:37
■Applicationコントローラーの働き
「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」というクラスを継承して作成します。これでコントローラーとして認識されるようになります。オブジェクトの定義を見ると、
まずは、「コントローラー」から見ていきましょう。コントローラーは、既に述べたように「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と全く同じですね。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
●Application.scalaの内容 package controllers import play.api._ import play.api.mvc._ object Application extends Controller { def index = Action { Ok(views.html.index("Your new application is ready.")) } }
※関連コンテンツ