1

在 Play 2.x 中,子项目是构建模块化应用程序的方式,看起来很棒。

现在,进入本质,一些问题变得清晰:

1) Cyclical dependencies not possible (A can depend on B, but B cannot depend on A)  
2) A child project cannot access a parent project  
3) Routing and Assets are isolated to each sub project

就我而言,我想按如下方式构建应用程序:

Main
Modules
-> Core
-> Model
-> Common
-> View
  -> Desktop
  -> Mobile
-> Controller
  -> admin
  -> account
  -> public

现在,假设管理员控制器收到一个移动请求,但用户尚未登录。好的,我们需要拉入View > Mobile > views > login > index.scala.html

由于控制器子项目依赖于视图(反之亦然),因此视图将无法访问控制器路由,这意味着类似的东西@form(action = admin.routes.auth)将不起作用。

可以废弃视图子项目并在每个单独的控制器子项目下存储视图,但这看起来像是大量模板代码重复的秘诀。

基本的核心、模型、主要(资产、控制器、视图)子项目设置一切都很好,但是当您需要支持移动和桌面界面以及 crud 和正面视图时,它会变得更加复杂。

当您看到由单个路由文件产生的巨大构建时间时,子项目开始看起来像圣杯。

实施是另一回事。

4

0 回答 0