**别名(Alias)**
**可以将别名视为特殊的常量变量,他的作用在于避免将一些文件路径、URL以硬编码的方式 写入代码中,或者多处出现一长串的文件路径、URL。**
小结一下,默认预定义别名一共有12个,其中路径别名11个,URL别名只有 @web 1个:
@yii 表示Yii框架所在的目录,也是 yii\BaseYii 类文件所在的位置;
@app 表示正在运行的应用的根目录,一般是 digpage.com/frontend ;
@vendor 表示Composer第三方库所在目录,一般是 @app/vendor 或 @app/../vendor ;
@bower 表示Bower第三方库所在目录,一般是 @vendor/bower ;
@npm 表示NPM第三方库所在目录,一般是 @vendor/npm ;
@runtime 表示正在运行的应用的运行时用于存放运行时文件的目录,一般是 @app/runtime ;
@webroot 表示正在运行的应用的入口文件 index.php 所在的目录,一般是 @app/web;
@web URL别名,表示当前应用的根URL,主要用于前端;
@common 表示通用文件夹;
@frontend 表示前台应用所在的文件夹;
@backend 表示后台应用所在的文件夹;
@console 表示命令行应用所在的文件夹;
其他使用Composer安装的Yii扩展注册的二级别名。
这样,在整个Yii应用中,只要使用上述别名,就可方便、且统一地表示特定的路径或URL。
**回顾上面的内容,我们有这么几个要点:**
· 别名需在**使用前定义**,因此通常来讲,定义别名应当在放在应用的初始化阶段。
· 别名必然以 **@ 打头**。
· 别名的定义**可以使用之前已经定义过的别名**。
· 别名在储存时,至多只分成两级,第一级的键是根别名。
· 第二级别名的键是完整的别名,而不是去除根别名后剩下的所谓的“二级”别名。
· Yii通过分层的树结构来保存别名最主要是为高效检索作准备。
· 很多地方可以直接使用别名,**而不用调用 Yii::getAlias() **
· 转换成真实的路径或URL。
· 别名解析时,优先匹配较长的别名。
· Yii预定义了许多常用的别名供编程时使用。
· 使用别名时,要将别名放在最前面,**不能放在中间**。