私は現在、PHPの世界から来たアクティブなPlayFramework学習者です。
たとえば、アプリに Head ブロック オブジェクトがあり、タイトル、文字セット エンコーディング、メタ情報などを保持する必要があります。Magento ブロックに似ていますが、XML 宣言はありません。
package blocks.Page
object Head {
var title: String = "";
}
Application.index() メソッドで私が持っている
blocks.Page.Head.title
Ok(views.html.application.index());
そして最後にhtmlテンプレートで
@import blocks.Page.Head
<title>@Head.title</title>
ただし、blocks.Page.Head オブジェクトは、単一のリクエストではなく、アプリケーション スコープ全体に対して定義されます。このオブジェクトは、各リクエストで同じです。
私がやろうとしていること、正しい方法は何ですか?すべてのブロックを含むコンテナを作成し、リクエストごとにインスタンス化してから、すべてのテンプレートに渡すだけです。しかし、私はこれが間違った方法であると感じています。