前言
Yii2是一个奇特的框架,其牺牲了现在盛行的解耦设计,用一个高度耦合的结构提供给开发者一个方便的几类抽象,Application,Module,Component,甚至是ServiceLocator.想让对象具备哪类特征就直接继承相应的对象,想要改变他就去复写父类的方法,虽然不符合开放封闭原则,单一职责原则,李氏替换原则等面向对象设计原则,但的确很方便.
本文就从Yii2 Advance版本的配置文件着手,详细介绍配置文件角度的Yii2框架,其中涉及到的部分内核方面的要点将在后续文章中逐一说明.
Yii2的配置文件分两级:
- common级别
- 站点级别
common顾名思义,通用的配置文件.站点级别会复写common级别的配置,作用域也是站点.
0. config/bootstrap.php
由于Yii2为了简化开发难度,所以用户定义的目录加载方式全部使用Yii2自己定义的autoload方法(Yii.php中注册的BaseYii.php中的autoload),而不是编辑composer.json然后dump autoload.
用法是将所有路径在index.php中全部注册到全局容器Yii中.方法就是Yii::setAlias();方法.
编辑的地方就确定在这个bootstrap.php文件中,但这个阶段并不是Yii的bootstrap阶段,只是在index.php中触发.有歧义,需要注意.
在common级别中,设置的是站点的root.在site中设置的是module的root.
1. config/main.php
main里面有比较多的设置项.
0. ‘params’
首先require所有包括common和本站点的全部params.php(params-loacl.php),并将返回值放在params键下.