亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜索
閱讀前篇 簡(jiǎn)介 Yii 是什么 從 Yii 1.1 升級(jí) 入門 安裝 Yii 運(yùn)行應(yīng)用 第一次問候 使用Forms 數(shù)據(jù)庫(kù)應(yīng)用 使用 Gii 生成代碼 進(jìn)階 應(yīng)用結(jié)構(gòu) 概述 入口腳本 應(yīng)用(Applications) 應(yīng)用組件(Application Components) 控制器(Controllers) 模型(Models) 視圖(views) 模塊(Modules) 過濾器(Filters) 小部件(Widgets) 前端資源(Assets) 擴(kuò)展(Extensions) 請(qǐng)求處理 運(yùn)行概述 啟動(dòng)引導(dǎo)(Bootstrapping) 路由和創(chuàng)建URL 請(qǐng)求(Requests) 響應(yīng)(Responses) Sessions 和 Cookies 錯(cuò)誤處理(Handling Errors) 日志(Logging) 關(guān)鍵概念 組件(Component) 屬性(Property) 事件(Events) 行為(Behaviors) 配置(Configurations) 別名(Aliases) 類自動(dòng)加載(Autoloading) 服務(wù)定位器(Service Locator) 依賴注入容器(Dependency Injection Container) 配合數(shù)據(jù)庫(kù)工作 數(shù)據(jù)庫(kù)訪問 (Data Access Objects) 查詢生成器(Query Builder) 活動(dòng)記錄(Active Record) 數(shù)據(jù)庫(kù)遷移(Migrations) Sphinx Redis MongoDB Elasticsearch 接收用戶數(shù)據(jù) 創(chuàng)建表單(Creating Forms) 輸入驗(yàn)證(Validating Input) 文件上傳(Uploading Files) 收集列表輸入(Collecting Tabular Input) 多模型的復(fù)合表單(Getting Data for Multiple Models) 顯示數(shù)據(jù) 格式化輸出數(shù)據(jù)(Data Formatting) 分頁(yè)(Pagination) 排序(Sorting) 數(shù)據(jù)提供器(Data Providers) 數(shù)據(jù)小部件(Data Widgets) 客戶端腳本使用(Working with Client Scripts) 主題(Theming) 安全 認(rèn)證(Authentication) 授權(quán)(Authorization) 處理密碼(Working with Passwords) 客戶端認(rèn)證(Auth Clients) 最佳安全實(shí)踐(Best Practices) 緩存 概述 數(shù)據(jù)緩存 片段緩存 頁(yè)面緩存 HTTP 緩存 RESTfull Web服務(wù) 快速入門(Quick Start) 資源(Resources) 控制器(Controllers) 路由(Routing) 格式化響應(yīng)(Response Formatting) 授權(quán)認(rèn)證(Authentication) 速率限制(Rate Limiting) 版本(Versioning) 錯(cuò)誤處理(Error Handling) 開發(fā)工具 調(diào)試工具欄和調(diào)試器 使用Gii生成代碼 生成API文檔 測(cè)試 概述(Overview) 配置測(cè)試環(huán)境(Testing environment setup) 單元測(cè)試(Unit Tests) 功能測(cè)試(Function Tests) 驗(yàn)收測(cè)試(Acceptance Tests) 測(cè)試夾具(Fixtures) 高級(jí)專題 高級(jí)應(yīng)用模板 創(chuàng)建自定義應(yīng)用程序結(jié)構(gòu) 控制臺(tái)命令 核心驗(yàn)證器(Core Validators) 國(guó)際化 收發(fā)郵件 性能優(yōu)化 共享主機(jī)環(huán)境 模板引擎 集成第三方代碼 小部件 Bootstrap 小部件 Jquery UI 助手類 概述 Array 助手(ArrayHelper) Html 助手(Html) Url 助手(Url)
文字

別名(Aliases)

別名(Aliases)

別名用來(lái)表示文件路徑和 URL,這樣就避免了在代碼中硬編碼一些絕對(duì)路徑和 URL。一個(gè)別名必須以?@?字符開頭,以區(qū)別于傳統(tǒng)的文件路徑和 URL。Yii 預(yù)定義了大量可用的別名。例如,別名?@yii?指的是 Yii 框架本身的安裝目錄,而?@web?表示的是當(dāng)前運(yùn)行應(yīng)用的根 URL。

定義別名

你可以調(diào)用 Yii::setAlias() 來(lái)給文件路徑或 URL 定義別名:

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

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

注意:別名所指向的文件路徑或 URL 不一定是真實(shí)存在的文件或資源。

可以通過在一個(gè)別名后面加斜杠?/?和一至多個(gè)路徑分段生成新別名(無(wú)需調(diào)用 Yii::setAlias())。我們把通過 Yii::setAlias() 定義的別名稱為根別名,而用他們衍生出去的別名成為衍生別名。例如,@foo?就是根別名,而?@foo/bar/file.php?是一個(gè)衍生別名。

你還可以用別名去定義新別名(根別名與衍生別名均可):

Yii::setAlias('@foobar', '@foo/bar');

根別名通常在引導(dǎo)階段定義。比如你可以在入口腳本里調(diào)用 Yii::setAlias()。為了方便起見,應(yīng)用提供了一個(gè)名為?aliases?的可寫屬性,你可以在應(yīng)用配置中設(shè)置它,就像這樣:

return [
    // ...
    'aliases' => [
        '@foo' => '/path/to/foo',
        '@bar' => 'http://www.example.com',
    ],
];

解析別名

你可以調(diào)用 Yii::getAlias() 命令來(lái)解析根別名到對(duì)應(yīng)的文件路徑或 URL。同樣的頁(yè)面也可以用于解析衍生別名。例如:

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

由衍生別名所解析出的文件路徑和 URL 是通過替換掉衍生別名中的根別名部分得到的。

注意:Yii::getAlias() 并不檢查結(jié)果路徑/URL 所指向的資源是否真實(shí)存在。

根別名可能也會(huì)包含斜杠?/。Yii::getAlias() 足夠智能到判斷一個(gè)別名中的哪部分是根別名,因此能正確解析文件路徑/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.phpecho Yii::getAlias('@foo/bar/file.php');   // 輸出:/path2/bar/file.php

若?@foo/bar?未被定義為根別名,最后一行語(yǔ)句會(huì)顯示為?/path/to/foo/bar/file.php。

使用別名

別名在 Yii 的很多地方都會(huì)被正確識(shí)別,無(wú)需調(diào)用 Yii::getAlias() 來(lái)把它們轉(zhuǎn)換為路徑/URL。例如,yii\caching\FileCache::cachePath 能同時(shí)接受文件路徑或是指向文件路徑的別名,因?yàn)橥ㄟ^?@?前綴能區(qū)分它們。

use yii\caching\FileCache;

$cache = new FileCache([
    'cachePath' => '@runtime/cache',
]);

請(qǐng)關(guān)注 API 文檔了解特定屬性或方法參數(shù)是否支持別名。

預(yù)定義的別名

Yii 預(yù)定義了一系列別名來(lái)簡(jiǎn)化常用路徑和 URL 的使用:

  • @yii?-?BaseYii.php?文件所在的目錄(也被稱為框架安裝目錄)
  • @app?- 當(dāng)前運(yùn)行的應(yīng)用 yii\base\Application::basePath
  • @runtime?- 當(dāng)前運(yùn)行的應(yīng)用的 yii\base\Application::runtimePath
  • @vendor?- yii\base\Application::vendorPath
  • @webroot?- 當(dāng)前運(yùn)行應(yīng)用的 Web 入口目錄
  • @web?- 當(dāng)前運(yùn)行應(yīng)用的根 URL

@yii?別名是在入口腳本里包含?Yii.php?文件時(shí)定義的,其他的別名都是在配置應(yīng)用的時(shí)候,于應(yīng)用的構(gòu)造方法內(nèi)定義的。

擴(kuò)展的別名

每一個(gè)通過 Composer 安裝的?擴(kuò)展?都自動(dòng)添加了一個(gè)別名。該別名會(huì)以該擴(kuò)展在?composer.json?文件中所聲明的根命名空間為名,且他直接代指該包的根目錄。例如,如果你安裝有?yiisoft/yii2-jui?擴(kuò)展,會(huì)自動(dòng)得到?@yii/jui?別名,它定義于引導(dǎo)啟動(dòng)階段:

Yii::setAlias('@yii/jui',?'VendorPath/yiisoft/yii2-jui');
上一篇: 下一篇: