应用主体是管理 Yii 应用系统整体结构和生命周期的对象。 每个 Yii 应用系统只能包含一个应用主体,应用主体在 入口脚本 中创建并能通过表达式 \Yii::$app 全局范围内访问。
Yii有两种应用主体: 网页应用主体 和 控制台应用主体, 如名称所示,前者主要处理网页请求,后者处理控制台请求。
访问模块实例:
// 获取ID为 "forum" 的模块
$module = \Yii::$app->getModule('forum');
// 获取处理当前请求控制器所属的模块
$module = \Yii::$app->controller->module;
第一种方式仅在你知道模块 ID 的情况下有效, 第二种方式在你知道处理请求的控制器下使用。 一旦获取到模块实例,可访问注册到模块的参数和组件,例如:
$maxPostCount = $module->params['maxPostCount'];
有些模块在每个请求下都有运行,yii\debug\Module 模块就是这种, 为此将这种模块加入到应用主体的 bootstrap 属性中。
例如,如下示例的应用主体配置会确保 debug 模块每次都被加载:
[
'bootstrap' => [
'debug',
],
'modules' => [
'debug' => 'yii\debug\Module',
],
]