首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Yii Framework 教程 (2):Web 應用核心架構與關鍵類別深度解析

     編輯:PHP 綜合知識

從 Hello World 到架構理解

第一個應用雖簡單,但 Yii 提供龐大類別庫,若不了解核心架構無從下手。本文系統介紹 CWebApplication、應用組件、生命週期、CController 四大支柱。

主應用實例

應用為 CWebApplication 單例,透過 Yii::app() 全域存取。可透過配置檔或繼承自訂。

配置檔範例

<?php
return array(
    'name' => 'Yii Framework',
    'defaultController' => 'site',
    'components' => array(
        'cache' => array(
            'class' => 'CMemCache',
            'servers' => array(
                array('host'=>'server1', 'port'=>11211, 'weight'=>60),
                array('host'=>'server2', 'port'=>11211, 'weight'=>40),
            ),
        ),
    ),
);

於入口腳本載入:Yii::createWebApplication($configFile)。

應用組件

功能模組化,透過 components 配置靈活替換。常用核心組件:

組件 ID類別用途
dbCDbConnection資料庫連線
cacheCCache資料快取(需指定具體類別)
urlManagerCUrlManagerURL 解析與建立
requestCHttpRequest用戶請求資訊
sessionCHttpSessionSession 管理
userCWebUser用戶身份識別
errorHandlerCErrorHandler錯誤/例外處理
logCLogRouter日誌路由

存取方式:Yii::app()->componentID(如 Yii::app()->db)。

CWebApplication 生命週期

  1. preinit():預初始化
  2. 設定自動載入器、錯誤處理
  3. 註冊核心組件
  4. 載入應用配置
  5. init():初始化、註冊行為、載入靜態組件、觸發 onBeginRequest
  6. 處理請求:解析 URL → 建立控制器 → 執行動作
  7. 觸發 onEndRequest

CController 控制器基礎

  • 動作方法:actionXxx() 格式(如 actionIndex())
  • 預設動作:index(可覆寫 defaultAction)
  • 最小控制器:
<?php
class SiteController extends CController {
    // 無動作會拋出異常
}

控制器負責:接收請求 → 呼叫模型 → 選擇視圖渲染 → 回應。

下一步

下篇將介紹如何為應用添加日誌功能(CLogRouter),掌握除錯與監控利器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved