国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > PhpCMS > 正文

PHPCMS系統初始化流程

2024-09-10 07:14:48
字體:
來源:轉載
供稿:網友

為增強phpcms二次開放能力,今天開始讀phpcms源碼,不定期更新點小日志,跟著平哥讀源碼,成為屌絲我看行.

phpcms單入口 mvc架構

index.php 所有請求都必須通過這個文件

index.php

加載base.php框架入口文件,初始化了系統環境變量,定義了pc_base靜態類:

creat_app:初始化了應用程序

load_sys_class:加載系統類,默認加載目錄為libs/classes

load_app_class:加載應用累,默認加載目錄為modules/模塊名/classes目錄(封裝的load_sys_class函數)

load_model:加載數據庫模型,默認加載目錄為model/xxx.class.php

load_sys_func:加載系統函數,默認加載目錄為libs/functions/ 

調用 pc_base靜態類 creat_app方法

  1. public static function creat_app() { 
  2. return self::load_sys_class('application'); 

加載了/libs/classes/application.class.php

pc_base類 里面_load_class方法默認$initialize為1 這樣會在加載的同時實例化 類 并會想實例化對象存儲到$classes靜態數組里面以class的路徑加文件名md5后的key

application類初始化方法:

  1. public function __construct() { 
  2. $param = pc_base::load_sys_class('param'); 
  3. define('ROUTE_M'$param->route_m()); 
  4. define('ROUTE_C'$param->route_c()); 
  5. define('ROUTE_A'$param->route_a()); 
  6. $this->init(); 

加載了系統類 param 參數處理類

獲取處理一切不受信任的外部變量

定義了 ROUTE_M 獲取的模塊名 

定義了 ROUTE_C 獲取的控制器名

定義了 ROUTE_A 獲取的方法名

application里面init方法:

調用application里面load_controller方法

$filepath = PC_PATH.'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.$filename.'.php';組合控制器路徑

并且判斷有沒有MY_的控制器,靈活擴展控制器

返回控制器實力

call_user_func(array($controller, ROUTE_A));執行控制器里面對應方法.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西乌珠穆沁旗| 西安市| 长子县| 黎城县| 哈密市| 虹口区| 合水县| 阳谷县| 潜山县| 泸西县| 额济纳旗| 天柱县| 米易县| 墨玉县| 九寨沟县| 唐山市| 马鞍山市| 霞浦县| 敖汉旗| 日喀则市| 安化县| 涞水县| 孝昌县| 彩票| 监利县| 论坛| 二连浩特市| 英德市| 威信县| 资中县| 万山特区| 义马市| 阜南县| 赤峰市| 昌平区| 油尖旺区| 瑞丽市| 永新县| 双牌县| 白沙| 民丰县|