Documentation

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

Play モジュール

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

モジュールとは?

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

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

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

モジュールは、アプリケーションの /modules ディレクトリから自動的にロードされます。依存性管理システム を使って自動的にアプリケーションのモジュールを管理することができます。

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

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

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

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

GET     /	     module:*

モジュールにドキュメントを追加する

モジュールに documentation/manual/home.textile ファイルを追加するだけで、モジュールにドキュメントを追加することができます。 ${play.path}/documentation/manual/ にある Play 自身のドキュメントと同じ Textile 文法を使ってください。

ドキュメントを持つひとつまたはそれ以上のモジュールを使って Play アプリケーションを実行している場合、 http://localhost:9000/@documentation にあるローカルの Play ドキュメントは、サイドバーの Installed Modules の下にそれらドキュメントへのリンクを含みます。

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

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

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

gbo-mac:‾ guillaume$ play list-modules
‾        _            _ 
‾  _ __ | | __ _ _  _| |
‾ | '_ ¥| |/ _' | || |_|
‾ |  __/|_|¥____|¥__ (_)
‾ |_|            |__/   
‾
‾ play! 1.2, 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

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

前提条件

新しいモジュールを登録するには、次のものが必要です。

  1. Google グループに投稿するための Google アカウント。
  2. 開発者ログインするための OpenID (このために Google アカウントを使用することができます) 。
  3. 正規表現 [a-zA-Z]+ にマッチするモジュール名。
  4. モジュールは ドキュメント を含む必要があります。
  5. 例えば GitHub, Google Code または Launchpad プロジェクトのような、ソースコードが利用できてバグを報告する方法を備えたモジュールのホームページ。

モジュールの登録

Google アカウントを OpenID として使用するためには、以下のようにしてその完全な URL を見つける必要があります。

  1. http://www.playframework.org/modulesDeveloper login の下に https://www.google.com/accounts/o8/id を入力し、 Login ボタンをクリックします。
  2. Google アカウントにログインします。
  3. 例えば https://www.google.com/accounts/o8/id?id=BItOawk7q69CFhRarQIo のように、 Developer login の下の完全な Google OpenID URL をメモします。

play-framework Google Group にモジュール登録リクエストを投稿します。例えば:

Subject: Module registration request: {module name}
 
Module name:
jqueryui
 
Display name:
jQuery UI
 
Description:
Working examples of jQuery UI widgets, integrated with a Play application.
 
Project home page:
https://github.com/hilton/jqueryui-module
 
OpenID:
https://www.google.com/accounts/o8/id?id=BItOawk7q69CFhRarQIo

モジュールが登録されたら、リリースを公開することができます。

モジュールのリリース

モジュールをリリースするためには:

  1. 例えば self: play -> jqueryui 1.0 のように、 conf/dependency.yml の最初の行にモジュールのバージョン番号を設定します
  2. play build-module コマンドでモジュールをビルドします
  3. Developer login の下から http://www.playframework.org/modules にログインします
  4. http://www.playframework.org/modules/developersYour modules の下にあるリンクからあなたのモジュールのページを閲覧します
  5. Manage module releases の下にあるフォームを使って、あなたのモジュールの dist/ ディレクトリから生成した ZIP ファイルをアップロードします

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

考察を続けます

依存性管理 を使ってモジュールを効率的に管理する方法を学びましょう。