- @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使用 Yii::$aliases[] 來保存別名
Yii::setAlias() 定義別名
Yii::getAlias()獲取別名
例如:
dirname(Yii::$app->request->getScriptFile())
Yii::getAlias("@webroot")
這兩個的返回值是一樣的
@webroot這個別名是在yiisoft/yii2/web/Application.php中定義的
小結
- 別名需在使用前定義,因此通常來講,定義別名應當在放在應用的初始化階段。
- 別名必然以 @ 打頭。
- 別名的定義可以使用之前已經定義過的別名。
- 別名在儲存時,至多只分成兩級,第一級的鍵是根別名。 第二級別名的鍵是完整的別名,而不是去除根別名后剩下的所謂的“二級”別名。
- Yii通過分層的樹結構來保存別名最主要是為高效檢索作准備。
- 很多地方可以直接使用別名,而不用調用 Yii::getAlias() 轉換成真實的路徑或URL。如Yii::getAlias("@app")
- 別名解析時,優先匹配較長的別名。
- Yii預定義了許多常用的別名供編程時使用。
- 使用別名時,要將別名放在最前面,不能放在中間。