Documentation

You are viewing the documentation for Play 1. The documentation for Play 2 is here.

Play モジュール

Play アプリケーションは、いくつかのアプリケーションモジュールから組み立てることができます。これにより、複数のアプリケーションをまたいでアプリケーションコンポーネントを再利用したり、大きなアプリケーションをいくつかの、より小さなアプリケーションに分割することが可能です。

モジュールとは?

モジュールは、ただの play アプリケーションです; しかし、アプリケーションモジュールのリソースがロードされる方法にいくつかの違いがあります:

play new-module コマンドでモジュールを作成することができます。

アプリケーションからモジュールをロードするには

デフォルトのモジュールインストール先は $PLAY_HOME/modules ディレクトリです。この方法では、フレームワークで実行されるすべてのアプリケーションからすべてのモジュールが自動的に利用可能となります。

アプリケーションから外部のモジュールをロードしたい場合は、アプリケーション中の application.conf ファイルに外部のモジュールを宣言するだけです。

# Additional modules
# ~~~~~
# A module is another Play application. Add a line for each module you want
# to add to your application. Module paths are either absolute or relative to
# the application root.
#
module.crud=${play.path}/modules/crud

アプリケーションに必要なすべてのモジュールを含むスタンドアロンプロジェクトを作成することもできます。必要なのは、アプリケーションと同じディレクトリにすべてのモジュールをコピーすることだけです。

CMS コンポーネント、フォーラムコンポーネント、ディレクトリコンポーネントと GWT モジュールを使用する大きなアプリケーションがあるとしましょう。このプロジェクトは次のレイアウトを使うことで作成できます:

/my-project
    /cms
    /forum
    /directory
    /gwt
    /main

main は (play new コマンドを使って作った) メインアプリケーションのディレクトリで、 gwt にはモジュールリポジトリからインストールされたモジュールがあり、そして、 cmsforum 、および directroy は、 play new-module コマンドを使って作られたモジュールです。

メインアプリケーションの設定ファイル (my-project/main/conf/application.conf) において、以下を使用するこれらのモジュールをロードできます:

# Additional modules
# ~~~~~
mdoule.gwt=../gwt
module.cms=../cms
module.forum=../forum
module.directory=../directory

(play run my-project/main を使って) メインアプリケーションを実行したとき、これらのモジュールはメモリにロードされ、より大きなアプリケーションとなります。

モジュールパスが相対パスである場合、メインアプリケーションのルートから解決されます。

モジュールからデフォルトルートをロードする

モジュールはデフォルトルートファイルを提供することができます。特別なルート宣言を使用することで、メインアプリケーションの routes ファイルにこれをロードすることができます:

# Import the default CRUD routes
GET     /admin	     module:crud

すべての利用可能なモジュールからルートをロードすることもできます:

GET     /	     module:*

モジュールリポジトリの使用

モジュールリポジトリ は、コミュニティによって寄付されたすべてのモジュールを識別します。モジュールはいくつかのバージョンを持つことができます。使用するフレームワークのバージョンに必要なのはどのバージョンのモジュールなのか、モジュールのドキュメントをチェックする必要があります。

play list-modules コマンドを使ってモジュールリポジトリを閲覧することもできます。

gbo-mac:~ guillaume$ play11 list-modules
~        _            _ 
~  _ __ | | __ _ _  _| |
~ | '_ \| |/ _' | || |_|
~ |  __/|_|\____|\__ (_)
~ |_|            |__/   
~
~ play! 1.1-unstable-r761, http://www.playframework.org
~
~ You can also browse this list online at http://www.playframework.org/modules
~
~ [bespin]
~   Bespin online editor
~   http://www.playframework.org/modules/bespin
~   Versions: 1.0, 1.0.1
~
~ [cobertura]
~   Cobertura
~   http://www.playframework.org/modules/cobertura
~   Versions: 1.0
...

play install {module}-{version} コマンドを使ってモジュールをインストールできます。例えば、Scala サポートをフレームワークにインストールするには、以下を使います:

play install scala-head

規約では、 head バージョンのモジュールは不安定です。バージョン情報を省略することで、デフォルトバージョンのモジュールをインストールすることもできます。例えば、以下のようにします:

play install scala

この方法では、モジュールはフレームワークをインストールした先の /modules ディレクトリにダウンロードされます。 --path オプションを使用してインストールパスを変更することができます:

play install gwt --path=my-project

モジュールリポジトリに新しいモジュールを寄付する

まず最初に、OpenID が必要です。OpenID は、あなたをモジュールの作者として認証する手助けになります。その後、Google Group でモジュール登録のリクエストを送ってください。

以下を連絡してください:

モジュールをリリースするには、単に play build-module コマンドを使用してください。そして、モジュールリポジトリに接続して、生成されたパッケージをアップロードしてください。

もちろん、ヘルプを提供したり情報を共有するために公式の Google Group を使用することができます。

考察を続けます

次: 国際化