1

如果我的项目中有多个模块,例如我的 UI 模块和我的数据库模块……是什么决定了执行哪个模块?有一个数组,application.config.php我在想你的模块名称空间在其中列出的顺序可能会影响这种情况,但情况似乎并非如此。

我知道这很简单,可能在文档中(我确实看过!)

TIA

4

1 回答 1

2

在 ZF2 中,“应用程序”只是模块的容器。模块本身就是实现应用程序功能的东西。例如,在Zf2SkeletonApplication 示例中,应用程序的功能(不包括 CSS、图像和 javascript 等资产)包含在名为 "application" 的模块中。

当 ZF2 项目加载时,其中声明的所有模块application.config.php都被初始化,并且它们的配置(包括路由)被合并到父应用程序配置中。

两个主要因素决定了应用程序运行时执行的大部分代码:

  1. 每个模块Module.php文件中包含的模块初始化(来自 Zf2 Skeleton 的示例)。此初始化代码定义了模块的配置路径、自动加载和事件处理。出于性能目的,初始化代码需要尽可能轻量级。
  2. 路由本身定义了其余大部分执行的入口点:哪些控制器在哪个模块中执行。然后,控制器确定运行哪些其他代码、是否运行其他模块提供的库等。

为简单起见,我省略了一些错综复杂的内容,但这是一个很好的总体概述。

ZF2 入门教程之类的教程对于学习基础知识非常有价值。


编辑:我应该注意,“应用程序级路由”是在“模块级”修改的,因为配置都被合并并且模块本身实现了应用程序。

于 2013-05-09T21:34:10.183 回答