模块
模块在一些场景里很有用。对大型应用来说,我们可能需要把它划分为几个模块,每个模块可以单独维护和部署。一些通用的功能,例如用户管理,评论管理,可以以模块的形式开发,这样他们就可以容易地在以后的项目中被复用。
模块组织在一个目录中,目录的名字即模块的唯一 ID 。模块目录的结构跟 很相似。下面列出了一个 的模块的典型的目录结构:
要使用模块,首先将模块目录放在 应用基础目录 的 modules
中。然后在应用的 属性中声明模块 ID 。例如,为了使用上面的 forum
模块,我们可以使用如下 应用配置:
模块也可以在配置时带有初始属性值。做法和配置 很类似。例如, forum
模块可以在其模块类中有一个名为 的属性,它可以在 应用配置 中配置如下:
模块中的控制器动作可以通过 moduleID/controllerID/actionID
访问。例如,假设上面的 forum
模块有一个名为 PostController
的控制器,我们就可以通过 路由 forum/post/create
访问此控制器中的 动作。此路由对应的 URL 即 .
模块可以无限级嵌套。这就是说,一个模块可以包含另一个模块,而这另一个模块又可以包含其他模块。我们称前者为 父模块 ,后者为 子模块. 子模块必须定义在其父模块的 modules 属性中,就像我们前面在应用配置中定义模块一样。