yii2中的别名

别名(Alias)
可以将别名视为特殊的常量变量。ii中、别名以@别名的定义一般放在应用的最开始的阶段进行,比如引导阶段、初始化阶段等开头,以区别于正常的文件路径和URL。
一、预定义别名
yii\BaseYii::$aliases 用于保存整个Yii应用的所有的别名。var_dump( \yii\BaseYii::$aliases);打印所有别名
所有预定义的别名:
默认预定义别名一共有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。


二、预定义别名的分布
(1)配置文件的别名
别名一般放在 digpage.com\common\config\bootstrap.php , 或者 digpage.com\frontend\config\bootstrap.php 等 bootstrap.php 文件中
Yii::setAlias('common', dirname(__DIR__));
Yii::setAlias('frontend', dirname(dirname(__DIR__)) . '/frontend');
Yii::setAlias('backend', dirname(dirname(__DIR__)) . '/backend');
Yii::setAlias('console', dirname(dirname(__DIR__)) . '/console');
该bootstrap.php 文件定义了 @common , @frontend , @backend 和 @console 4个别名。 
开发者也可以自己在 bootstrap.php 中加入自己的别名定义

(2)Yii预定义的别名
主要分布在 yii\BaseYii 和 yii\base\Application 等类中。这类别名直接写到Yii的代码中去,一般不去修改他。
如:在yii\BaseYii 中:
// 定义@yii作为yii\BaseYii.php的别名
public static $aliases = ['@yii' => __DIR__];
又如:yii\base\Application 在其构造函数 __construct()中

(3)扩展中的别名
Yii的扩展(extensions)。 当使用Composer安装扩展后,会向 @vendor/yiisoft/extensions.php 写入信息,其中就包含相应的别名。 只不过这些别名通常都是二级别名。然后,在 yii\base\Application::bootstrap() 中,将这些扩展的别名进行注册。


三、别名的定义与解析

















































猜你喜欢

转载自blog.csdn.net/wuhuagu_wuhuaguo/article/details/80160194
今日推荐