1. 程式人生 > >Yii-別名(Aliases)

Yii-別名(Aliases)

別名

別名用來表示檔案路徑和 URL,這樣就避免了在程式碼中硬編碼一些絕對路徑和 URL。一個別名必須以 @ 字元開頭,以區別於傳統的檔案路徑和 URL。
Yii 預定義了大量可用的別名。例如,別名 @yii 指的是 Yii 框架本身的安裝目錄,而 @web 表示的是當前執行應用的根 URL。

定義別名(Defining Aliases)

呼叫 Yii::setAlias() 來給檔案路徑或 URL 定義別名:

// 檔案路徑的別名
Yii::setAlias('@foo', '/path/to/foo');

// URL 的別名
Yii::setAlias('@bar', 'http://www.example.com'
);

解析別名(Resolving Aliases)

呼叫 Yii::getAlias() 命令來解析別名到對應的檔案路徑或 URL:

echo Yii::getAlias('@foo');               // 輸出:/path/to/foo
echo Yii::getAlias('@bar');               // 輸出:http://www.example.com

預定義的別名(Predefined Aliases)

Yii 預定義了一系列別名來簡化常用路徑和 URL 的使用:

@yii,BaseYii.php 檔案所在的目錄(也被稱為框架安裝目錄)。
@app,當前執行的應用 根路徑(base path)。
@runtime,當前執行的應用的 執行環境(runtime)路徑。預設為 @app/runtime。
@webroot,當前執行的Web應用程式的Web根目錄。它是根據包含 入口指令碼 的目錄確定的。
@web,當前執行的Web應用程式的 base URL。它的值與 yii\web\Request::$baseUrl 相同。
@vendor,Composer vendor 目錄。
@bower,包含 bower 包 的根目錄。預設為 @vendor/bower。
@npm,包含 npm 包 的根目錄。預設為 @vendor/npm。

@yii 別名是在入口腳本里包含 Yii.php 檔案時定義的,其他的別名都是在配置應用的時候,於應用的構造方法內定義的。