YII框架 別名Aliases

2021-10-12 18:06:41 字數 2065 閱讀 3349

別名用來表示檔案路徑和 url,這樣就避免了在**中硬編碼一些絕對路徑和 url。 乙個別名必須以 @ 字元開頭,以區別於傳統的檔案路徑和 url。 沒有前導 @ 定義的別名將以 @ 字元作為字首

注意: yii::getalias() 並不檢查結果路徑/url 所指向的資源是否真實存在。

#你可以呼叫 yii::setalias() 來給檔案路徑或 url 定義別名:

// url 的別名 d:\webroot\nbhuin\xjl\api\common

yii:

:setalias

('@common'

,dirname

(__dir__))

;// 檔案路徑的別名 /path/to/foo

yii:

:setalias

('@foo'

,'/path/to/foo');

#你還可以用別名去定義新別名(根別名與衍生別名均可): /path/to/foo/bar

yii:

:setalias

('@foobar'

,'@foo/bar');

// 包含 \foo\bar 類的具體檔案的別名 /definitely/not/foo/bar.php

yii:

:setalias

('@foo/bar.php'

,'/definitely/not/foo/bar.php'

);

#你可以呼叫 yii::getalias() 命令來解析根別名到對應的檔案路徑或 url。 同樣的頁面也可以用於解析衍生別名。例如:

yii:

:getalias

('@common');

#根別名可能也會包含斜槓 /。 yii::getalias() 足夠智慧型到判斷乙個別名中的哪部分是根別名,因此能正確解析檔案路徑/url。 例如:

yii:

:setalias

('@foo'

,'/path/to/foo');

yii:

:setalias

('@foo/bar'

,'/path2/bar');

echo yii:

:getalias

('@foo/test/file.php');

// 輸出:/path/to/foo/test/file.php

echo yii:

:getalias

('@foo/bar/file.php');

// 輸出:/path2/bar/file.php

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

@webroot,當前執行的web應用程式的web根目錄。 它是根據包含 入口指令碼 的目錄確定的

@web,當前執行的web應用程式的 base url。它的值與[yii\web\request::$baseurl]相同。

@bower,包含 bower 包 的根目錄。預設為

@vendor/bower@npm,包含 npm 包 的根目錄。預設為@vendor/npm

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

每乙個通過 composer 安裝的 擴充套件 都自動新增了乙個別名。 該別名會以該擴充套件在 composer.json 檔案中所宣告的根命名空間為名, 且他直接代指該包的根目錄。例如,如果你安裝有 yiisoft/yii2-jui 擴充套件,會自動得到 @yii/jui 別名, 它定義於引導啟動階段:

yii::setalias('@yii/jui', 'vendorpath/yiisoft/yii2-jui');

Yii原始碼解讀 別名

設定別名的目的 特殊的變數常量 yii baseyii aliases儲存整個yii應用的所有別名。webroot web最後乙個藏有別名的地方 verdor yiisoft extensions.phpyii aliases來儲存別名 yii setalias alias path 來定義別名。這...

yii框架學習(一)yii框架介紹

yii幾乎擁有了當今web2.0應用發展的全部特性。下面是這些特性的乙個簡短的清單。yii是乙個基於元件 用於開發大型web應用的高效能php框架。在web開發中yii可以最大限度的實現 重用,極大的提高開發的速度。名字yii 讀音是yee or ji 應該就是 易 的讀音 代表的是容易 easy ...

yii別名的定義和別名的獲取以及別名的使用

1.別名的定義規則 別名用來表示檔案路徑和 url,這樣就避免了在 中硬編碼一些絕對路徑和 url。乙個別名必須以 字元開頭,以區別於傳統的檔案路徑和 url。沒有前導 定義的別名將以 字元作為字首。在配置檔案中定義別名 2.配置檔案main local.php中定義 aliases linchen...