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

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

啟動引導(Bootstrapping)

啟動引導(Bootstrapping)

啟動引導是指:在應用開始解析并處理新接受請求之前,一個預先準備環(huán)境的過程。啟動引導會在兩個地方具體進行:入口腳本(Entry Script)?和?應用主體(application)。

在入口腳本里,需注冊各個類庫的類文件自動加載器(Class Autoloader,簡稱自動加載器)。這主要包括通過其?autoload.php?文件加載的 Composer 自動加載器,以及通過?Yii?類加載的 Yii 自動加載器。之后,入口腳本會加載應用的?配置(configuration)?并創(chuàng)建一個應用主體?的實例。

在應用主體的構造函數中,會執(zhí)行以下引導工作:

  1. 調用 yii\base\Application::preInit()(預初始化)方法,配置一些高優(yōu)先級的應用屬性,比如 yii\base\Application::basePath 屬性。
  2. 注冊yii\base\Application::errorHandler。
  3. 通過給定的應用配置初始化應用的各屬性。
  4. 通過調用 yii\base\Application::init()(初始化)方法,它會順次調用 yii\base\Application::bootstrap() 從而運行引導組件。
    • 加載擴展清單文件(extension manifest file)?vendor/yiisoft/extensions.php。
    • 創(chuàng)建并運行各個擴展聲明的?引導組件(bootstrap components)。
    • 創(chuàng)建并運行各個?應用組件?以及在應用的?Bootstrap 屬性中聲明的各個?模塊(modules)組件(如果有)。

因為引導工作必須在處理每一次請求之前都進行一遍,因此讓該過程盡可能輕量化就異常重要,請盡可能地優(yōu)化這一步驟。

請盡量不要注冊太多引導組件。只有他需要在 HTTP 請求處理的全部生命周期中都作用時才需要使用它。舉一個用到它的范例:一個模塊需要注冊額外的 URL 解析規(guī)則,就應該把它列在應用的?bootstrap 屬性之中,這樣該 URL 解析規(guī)則才能在解析請求之前生效。(譯注:換言之,為了性能需要,除了 URL 解析等少量操作之外,絕大多數組件都應該按需加載,而不是都放在引導過程中。)

在生產環(huán)境中,可以開啟字節(jié)碼緩存,比如 APC,來進一步最小化加載和解析 PHP 文件所需的時間。

一些大型應用都包含有非常復雜的應用配置,它們會被分割到許多更小的配置文件中。此時,可以考慮將整個配置數組緩存起來,并在入口腳本創(chuàng)建應用實例之前直接從緩存中加載。
?? ??: ?? ??: