colaphp框架的類分析 一

2021-07-25 05:32:39 字數 2316 閱讀 4964

屬性分析

$_instance 單例模式,持有cola物件

$reg 儲存變數和物件

$config 配置物件

$router 路由物件

$pathinfo 儲存路由的路徑

$dispatchinfo 儲存需要載入的控制器和方法

構造方法

1 註冊預設需要的類

2 載入自動載入方法

//初始化配置類

$this->config = new cola_config(array(

'_class' => array(

'cola_model' => cola_dir . '/model.php',

'cola_view' => cola_dir . '/view.php',

'cola_controller' => cola_dir . '/controller.php',

'cola_router' => cola_dir . '/router.php',

'cola_request' => cola_dir . '/request.php',

'cola_response' => cola_dir . '/response.php',

'cola_ext_validate' => cola_dir . '/ext/validate.php',

'cola_exception' => cola_dir . '/exception.php',

'cola_exception_dispatch' => cola_dir . '/exception/dispatch.php',

),));

cola::registerautoload();

自動載入方法loadclass(cl

assn

ame,

classfile = 」),支援按照檔案和方法查詢

1 看是否已經存在

2 classfile不存在,在預設的類中查詢

3 如果類名字中有cola 去掉它。例如cola_ext_http類

去掉cola把_替換成\ ***\ext\http檔案

4 然後需要配置 model controller 載入對應的類

其實**需要指定對應的controller,model,view,widget路徑

入口**是這麼寫的

//分發 config_path 配置路徑

$cola

->boot(config_path)->dispatch();

boot(config_path) 主要是載入配置檔案合併配置。下面我們講到config類的時候會做乙個說明

初始化cola物件,boot配置後,我們會有乙個dispatch,這個時候我們主要考慮的是載入對應的controller和action

getdispatchinfo方法是獲取dispathch的

1 如果不存在dispatchinfo,例項化router

2 獲取配置裡面_urls陣列和router例項裡面的rules合併

3 獲取pathinfo,然後去router裡面匹配

4 載入對應的controller檔案和物件,呼叫對應的方法

dispathch最後的結構是類似這一種的哦

[dispatchinfo] => array

([controller] => indexcontroller

[action] => indexaction

)

setconfig和getconfig主要是呼叫config物件的方法

setreg(na

me, obj) 註冊物件或者引數

setclasspath 往配置裡面加入載入路徑

setdispatchinfo 設定變數

factory例項化乙個類,當然咱們也可以直接不用factory例項化,

我覺得這個地方可以再加個是否setreg的配置,復用這個類,恩,在**裡面已調整

public

static

function

factory

($type, $config)

colaphp框架的模組簡單說明

支援mc redis cola ext cache abstract通過魔術方法支援任意的redis方法呼叫 public function call method,args 支援pdo myisql和mysqli 支援輸出日誌和檔案日誌 支援redis佇列 測試驗證 data id 123 rul...

OGRE框架分析(一)

簡單ogre框架由兩個檔案引入 exampleframelistener.h 指向root 物件的指標 root mroot 指向程式中攝象機的指標 camera mcamera 指向場景管理器的指標 scenemanager mscenemgr 指向 幀 的指標 framelistener mfr...

grpc框架分析一 Server分析

監聽tcp埠 生成乙個 grpc.server物件,把 grpc.server物件和 實現userserviceserver介面的例項繫結起來 啟動grpc伺服器 func main log.println userservice to listen 9000 success grpcserver ...