使用这个属性来定义别名, 代替 Yii::setAlias() 方法来设置。
bootstrap
这个属性很实用,它允许你用数组指定启动阶段 bootstrapping process 需要运行的组件。 比如,如果你希望一个 模块 自定义 URL 规则, 你可以将模块ID加入到bootstrap数组中。
属性中的每个组件需要指定以下一项:
应用 组件 ID. 模块 ID. 类名. 配置数组. 创建并返回一个组件的无名称函数.例如:
[
'bootstrap' => [
// 应用组件ID或模块ID
'demo',
// 类名
'appcomponentsProfiler',
// 配置数组
[
'class' => 'appcomponentsProfiler',
'level' => 3,
],
// 匿名函数
function () {
return new appcomponentsProfiler();
}
],
]
信息: 如果模块 ID 和应用组件 ID 同名,优先使用应用组件 ID, 如果你想用模块 ID, 可以使用如下无名称函数返回模块 ID。
[ function () { return Yii::$app->getModule('user'); }, ]
在启动阶段,每个组件都会实例化。如果组件类实现接口 yiibaseBootstrapInterface,也会调用 bootstrap() 方法。
举一个实际的例子,Basic Application Template 应用主体配置中, 开发环境下会在启动阶段运行 debug 和 gii 模块。
if (YII_ENV_DEV) {
// configuration adjustments for 'dev' environment
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = 'yiidebugModule';
$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = 'yiigiiModule';
}
注意: 启动太多的组件会降低系统性能,因为每次请求都需要重新运行启动组件, 因此谨慎配置启动组件。
catchAll
该属性仅 Web applications 网页应用支持。 它指定一个要处理所有用户请求的 控制器方法, 通常在维护模式下使用,同一个方法处理所有用户请求。
该配置为一个数组,第一项指定动作的路由,剩下的数组项(key-value 成对)指定传递给动作的参数, 例如:
[ 'catchAll' => [ 'offline/notice', 'param1' => 'value1', 'param2' => 'value2', ], ]
信息: 当开启这个属性时,开发环境下的调试面板将不能工作。
components
这是最重要的属性,它允许你注册多个在其他地方使用的 应用组件. 例如
[ 'components' => [ 'cache' => [ 'class' => 'yiicachingFileCache', ], 'user' => [ 'identityClass' => 'appmodelsUser', 'enableAutoLogin' => true, ], ], ]
每一个应用组件指定一个key-value对的数组,key代表组件ID, value代表组件类名或 配置。
在应用中可以任意注册组件,并可以通过表达式







