yii 應用組件

細讀這句話三次以上,有助於理解組件在yii框架中的地位:
應用主體是服務定位器,它部署一組提供各種不同功能的 應用組件 來處理請求。 例如,urlManager組件負責處理網頁請求路由到對應的控制器。db組件提供數據庫相關服務等等。

應用組件

  • 應用組件在第一次被使用的時候會創建應用組件實例,後續再訪問會返回此實例,無需再次創建。
  • 應用組件可以是任意對象
  • 請謹慎註冊太多應用組件,應用組件就像全局變量,使用太多可能加大測試和維護的難度。 一般情況下可以在需要時再創建本地組件。

引導啓動組件

上面提到一個應用組件只會在第一次訪問時實例化,如果處理請求過程沒有訪問的話就不實例化。 有時你想在每個請求處理過程都實例化某個組件即便它不會被訪問, 可以將該組件ID加入到應用主體的 yii\base\Application::bootstrap 屬性中。

核心應用組件

  • yii\web\AssetManager: 管理資源包和資源發佈,詳情請參考 管理資源 一節。
  • yii\db\Connection: 代表一個可以執行數據庫操作的數據庫連接, 注意配置該組件時必須指定組件類名和其他相關組件屬性,如yii\db\Connection::dsn。 詳情請參考 數據訪問對象 一節。
  • yii\base\Application::errorHandler: 處理 PHP 錯誤和異常, 詳情請參考 錯誤處理 一節。
  • yii\i18n\Formatter: 格式化輸出顯示給終端用戶的數據,例如數字可能要帶分隔符, 日期使用長格式。詳情請參考 格式化輸出數據 一節。
  • yii\i18n\I18N: 支持信息翻譯和格式化。詳情請參考 國際化 一節。
  • yii\log\Dispatcher: 管理日誌對象。詳情請參考 日誌 一節。
  • yii\swiftmailer\Mailer: 支持生成郵件結構併發送,詳情請參考 郵件 一節。
  • yii\base\Application::response: 代表發送給用戶的響應, 詳情請參考 響應 一節。
  • yii\base\Application::request: 代表從終端用戶處接收到的請求, 詳情請參考 請求 一節。
  • yii\web\Session: 代表會話信息,僅在yii\web\Application 網頁應用中可用, 詳情請參考 Sessions (會話) and Cookies 一節。
  • yii\web\UrlManager: 支持URL地址解析和創建, 詳情請參考 URL 解析和生成 一節。
  • yii\web\User: 代表認證登錄用戶信息,僅在yii\web\Application 網頁應用中可用, 詳情請參考 認證 一節。
  • yii\web\View: 支持渲染視圖,詳情請參考 Views 一節。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章