**別名(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預定義了許多常用的別名供編程時使用。
· 使用別名時,要將別名放在最前面,**不能放在中間**。