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

?? ??? ??
閱讀前篇 簡(jiǎn)介 Yii 是什么 從 Yii 1.1 升級(jí) 入門 安裝 Yii 運(yùn)行應(yīng)用 第一次問候 使用Forms 數(shù)據(jù)庫應(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ù)庫工作 數(shù)據(jù)庫訪問 (Data Access Objects) 查詢生成器(Query Builder) 活動(dòng)記錄(Active Record) 數(shù)據(jù)庫遷移(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) 分頁(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ù)緩存 片段緩存 頁面緩存 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)
??

類自動(dòng)加載(Autoloading)

類自動(dòng)加載(Autoloading)

Yii 依靠類自動(dòng)加載機(jī)制來定位和包含所需的類文件。它提供一個(gè)高性能且完美支持PSR-4 標(biāo)準(zhǔn)(中文漢化)的自動(dòng)加載器。該自動(dòng)加載器會(huì)在引入框架文件?Yii.php?時(shí)安裝好。

注意:為了簡(jiǎn)化敘述,本篇文檔中我們只會(huì)提及類的自動(dòng)加載。不過,要記得文中的描述同樣也適用于接口和Trait(特質(zhì))的自動(dòng)加載哦。

使用 Yii 自動(dòng)加載器

要使用 Yii 的類自動(dòng)加載器,你需要在創(chuàng)建和命名類的時(shí)候遵循兩個(gè)簡(jiǎn)單的規(guī)則:

  • 每個(gè)類都必須置于命名空間之下 (比如?foo\bar\MyClass)。
  • 每個(gè)類都必須保存為單獨(dú)文件,且其完整路徑能用以下算法取得:
// $className 是一個(gè)開頭包含反斜杠的完整類名(譯注:請(qǐng)自行谷歌:fully qualified class name)$classFile = Yii::getAlias('@' . str_replace('\\', '/', $className) . '.php');

舉例來說,若某個(gè)類名為?foo\bar\MyClass,對(duì)應(yīng)類的文件路徑別名會(huì)是?@foo/bar/MyClass.php。為了讓該別名能被正確解析為文件路徑,@foo?或?@foo/bar?中的一個(gè)必須是根別名。

當(dāng)我們使用基本應(yīng)用模版時(shí),可以把你的類放置在頂級(jí)命名空間?app?下,這樣它們就可以被 Yii 自動(dòng)加載,而無需定義一個(gè)新的別名。這是因?yàn)?@app?本身是一個(gè)預(yù)定義別名,且類似于?app\components\MyClass?這樣的類名,基于我們剛才所提到的算法,可以正確解析出AppBasePath/components/MyClass.php?路徑。

在高級(jí)應(yīng)用模版里,每一邏輯層級(jí)會(huì)使用他自己的根別名。比如,前端層會(huì)使用?@frontend?而后端層會(huì)使用?@backend。因此,你可以把前端的類放在?frontend?命名空間,而后端的類放在?backend。 這樣這些類就可以被 Yii 自動(dòng)加載了。

類映射表(Class Map)

Yii 類自動(dòng)加載器支持類映射表功能,該功能會(huì)建立一個(gè)從類的名字到類文件路徑的映射。當(dāng)自動(dòng)加載器加載一個(gè)文件時(shí),他首先檢查映射表里有沒有該類。如果有,對(duì)應(yīng)的文件路徑就直接加載了,省掉了進(jìn)一步的檢查。這讓類的自動(dòng)加載變得超級(jí)快。事實(shí)上所有的 Yii 核心類都是這樣加載的。

你可以用?Yii::$classMap?方法向映射表中添加類,

Yii::$classMap['foo\bar\MyClass'] = 'path/to/MyClass.php';

別名可以被用于指定類文件的路徑。你應(yīng)該在引導(dǎo)啟動(dòng)的過程中設(shè)置類映射表,這樣映射表就可以在你使用具體類之前就準(zhǔn)備好。

用其他自動(dòng)加載器

因?yàn)?Yii 完全支持 Composer 管理依賴包,所以推薦你也同時(shí)安裝 Composer 的自動(dòng)加載器,如果你用了一些自帶自動(dòng)加載器的第三方類庫,你應(yīng)該也安裝下它們。

當(dāng)你同時(shí)使用其他自動(dòng)加載器和 Yii 自動(dòng)加載器時(shí),應(yīng)該在其他自動(dòng)加載器安裝成功之后,再包含?Yii.php?文件。這將使 Yii 成為第一個(gè)響應(yīng)任何類自動(dòng)加載請(qǐng)求的自動(dòng)加載器。舉例來說,以下代碼提取自基本應(yīng)用模版的入口腳本?。第一行安裝了 Composer 的自動(dòng)加載器,第二行才是 Yii 的自動(dòng)加載器:

require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');

你也可以只使用 Composer 的自動(dòng)加載,而不用 Yii 的自動(dòng)加載。不過這樣做的話,類的加載效率會(huì)下降,且你必須遵循 Composer 所設(shè)定的規(guī)則,從而讓你的類滿足可以被自動(dòng)加載的要求。

補(bǔ)充:若你不想要使用 Yii 的自動(dòng)加載器,你必須創(chuàng)建一個(gè)你自己版本的?Yii.php?文件,并把它包含進(jìn)你的入口腳本里。

自動(dòng)加載擴(kuò)展類

Yii 自動(dòng)加載器支持自動(dòng)加載擴(kuò)展的類。唯一的要求是它需要在?composer.json?文件里正確地定義?autoload?部分。請(qǐng)參考?Composer 文檔(英文)(中文漢化),來了解如何正確描述?autoload?的更多細(xì)節(jié)。

在你不使用 Yii 的自動(dòng)加載器時(shí),Composer 的自動(dòng)加載器仍然可以幫你自動(dòng)加載擴(kuò)展內(nèi)的類。
?? ??: ?? ??: