Category: ‘Playframework’

playframeworkのサイトリニューアル

2013年2月6日 Posted by PURGE

play 2.0.4で、play run すると下記のエラー。

 a module is not authorized to depend on itself

原因はわかりませんが、play 2.1.0をインストールし直すことで解決。

ちなみに、playのサイトがリニューアルしました。ダウンロードしている最中にサイトが変わった。

どうでも良いことですが・・・。

Playframework 初めてのcontroller

2013年1月2日 Posted by PURGE

お手本通りのcontroller作成。
間違いで、objectをclassと記述してしまって、ちょっとハマった。

HelloController.scala

package controllers

import play.api.mvc.Action
import play.api.mvc.Controller

object HelloController extends Controller {
  def index = Action{
    Ok(<p>Hello Purgeさん</p>).as(HTML)
  }

}

routesファイル

GET     /hello                      controllers.HelloController.index

日本語も難なく表示した。
今度は、viewファイルを使用してみる。views以下に配置。

HelloController.scala

package controllers

import play.api.mvc.Action
import play.api.mvc.Controller

object HelloController extends Controller {
  def index = Action{
    //Ok(<p>Hello Purgeさん</p>).as(HTML)
    Ok(views.html.hello())
  }

}

hello.scala.html

<html>
	<head>
		<title>Hello Scala!!</title>
	</head>
	<body>
		<p>こんにちは。Purgeさん!!!!</p>
	</body>
</html>

最初は、controllerから、viewを指定するの記述方法に迷った。とりあえずはこれで動作した。

こんどは、パラメータを受け取ってみる。

HelloController.scala

package controllers

import play.api.mvc.Action
import play.api.mvc.Controller

object HelloController extends Controller {
  def index = Action{request =>
    val params: Map[String, Seq[String]] = request.queryString
    val name = params("name").head
    Ok(views.html.hello(name))
  }
}

パラメータが見つからないとエラーとなるようなので、あえて下記のようにリクエストにパラメータを付加してみる。

http://localhost:9000/hello?name=ほげ

hello.scala.html

@(name: String)
<html>
	<head>
		<title>Hello Scala!!</title>
	</head>
	<body>
		<p>こんにちは。@name さん!!!!</p>
	</body>
</html>

パラメータを受けて、名前が表示された。

Playframework 事始め

2012年12月24日 Posted by PURGE

先日のScala事始めに引き続き、ScalaもしくはJavaのフレームワークである Playframework に興味を持ってみた。

理由としては、私自身、元々Java専門。しかしJavaでWeb開発するのは、かなり苦痛。
そこでRuby on Railsに暫く乗り換えていたのですが、Rubyはやっぱりすごく楽ちん。

でも、やはり業務での利用となると、MySQLだけでなく、業務専用のDBとの連携が必要となる。確かにRailsでも業務専用DBとの連携は可能なのだが、私自身が、にわかエンジニアなので、どこか違和感と不安感を感じていた。

そこで、Railsの便利さと、Javaの安心感を兼ねそろえていると噂の Scala と、その代表的なフレームワークである Play2 に興味を持った経緯である。

Playframework Home

早速zipダウンロード。

オンラインマニュアルには、権限の無いディレクトリにインストールをすることを非推奨としているようであるが、私の場合は、下記ディレクトリにインストール。

/usr/local/play-2.0.4

私の開発環境は、Macなので、ユーザディレクトリにある .bashrc に下記を追記。

$ vi .bashrc
export PATH=${PATH}:/usr/local/play-2.0.4

環境変数を有効にして、初めての playコマンド。

$ source .bashrc

$ play help
Getting net.java.dev.jna jna 3.2.3 ...
:: retrieving :: org.scala-sbt#boot-app
	confs: [default]
	1 artifacts copied, 0 already retrieved (838kB/176ms)
Getting Scala 2.9.1 (for console)...
:: retrieving :: org.scala-sbt#boot-scala
	confs: [default]
	4 artifacts copied, 0 already retrieved (19939kB/1169ms)
Getting play console_2.9.1 2.0.4 ...
:: retrieving :: org.scala-sbt#boot-app
	confs: [default]
	5 artifacts copied, 0 already retrieved (3667kB/208ms)
       _            _ 
 _ __ | | __ _ _  _| |
| '_ \| |/ _' | || |_|
|  __/|_|\____|\__ (_)
|_|            |__/ 
             
play! 2.0.4, http://www.playframework.org

Welcome to Play 2.0!

These commands are available:
-----------------------------
license            Display licensing informations.
new [directory]    Create a new Play application in the specified directory.

You can also browse the complete documentation at http://www.playframework.org.

うまく行っているようだ。
Playプロジェクトを作成するディレクトリに移動して、早速新規プロジェクトを作成。プロジェクト名は、PlayTest。

$ cd /Works
$ play new PlayTest
       _            _ 
 _ __ | | __ _ _  _| |
| '_ \| |/ _' | || |_|
|  __/|_|\____|\__ (_)
|_|            |__/ 
             
play! 2.0.4, http://www.playframework.org

The new application will be created in /Works/PlayTest

What is the application name? 
> PlayTest

Which template do you want to use for this new application? 

  1 - Create a simple Scala application
  2 - Create a simple Java application
  3 - Create an empty project

> 1

OK, application PlayTest is created.

Have fun!

プロジェクトの雛形が作成された。
今日はこれまで。