所有预定义的别名
小结一下,默认预定义别名一共有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::$aliases[] 来保存别名, 定义别名就是将别名及其代表的实际路径或URL写入这个数组, 而解析别名就是将别名的信息从数组读取出去并组合。
别名的定义过程
除了像上面的代码那样定义一个别名之外,还有其他的用法:
// 使用一个路径定义一个路径别名
Yii::setAlias('@foo', 'path/to/foo');
// 使用一个URL定义一个URL别名
Yii::setAlias('@bar', 'http://www.example.com');
// 使用一个别名定义另一个别名
Yii::setAlias('@fooqux', '@foo/qux');
// 定义一个“二级”别名
Yii::setAlias('@foo/bar', 'path/to/foo/bar');
网友评论