系統(tǒng)加載順序

2018-06-13 16:13 更新

了解 ModPHP 的系統(tǒng)加載順序有助于更好的在應(yīng)用開發(fā)中部署程序。

在每一次調(diào)用執(zhí)行時(shí),ModPHP 會(huì)通過 __ROOT__/mod/common/init.php 文件進(jìn)行初始化操作,加載系統(tǒng)所需文件和應(yīng)用配置,以及解析請(qǐng)求并調(diào)用模板。

具體的初始化過程如下:

  1. 加載 mod/functions/ 目錄下的 extension.func.php 擴(kuò)展函數(shù)文件和 mod.func.php 核心函數(shù)文件;
  2. 加載 mod/classes/mod.class.php 核心類文件;
  3. 加載默認(rèn)模塊類文件和其他類庫(kù)文件,它們存放在 mod/classes/ 目錄下;
  4. 加載自定義模塊類文件,它們存放在 user/classes/ 目錄下;
  5. 加載默認(rèn)模塊函數(shù)文件,它們存放在 mod/functions/ 目錄下;
  6. 加載其他函數(shù)文件,他們存放在 user/functions/目錄下。
  7. 加載模板目錄下的 functions.php 文件(如果存在);
  8. 預(yù)備運(yùn)行環(huán)境并根據(jù)請(qǐng)求定義常量 __DISPLAY____OBJ____ACT__;
  9. 最后,加載 __DISPLAY__ 模板文件或者執(zhí)行 __OBJ____ACT__ 操作。

ModPHP 是強(qiáng)調(diào)前后端一致的,所以,在預(yù)備運(yùn)行環(huán)境時(shí),ModPHP 會(huì)將$_GET、$_POST 和 $_REQUEST 變量進(jìn)行修改。因?yàn)楸韱蝹髦祷蛘?AJAX 都會(huì)將布爾型的 truefalse,以及數(shù)字、 nullundefined 等轉(zhuǎn)換成字符串,所以 ModPHP 會(huì)在預(yù)備運(yùn)行環(huán)境時(shí)將字符串 truefalse 轉(zhuǎn)換為布爾值的 true 和 false,將字符串 nullundefined 都轉(zhuǎn)換成 null,而將小于 2147483647 的數(shù)字字符串轉(zhuǎn)為整型。

同時(shí),ModPHP 也保留一些變量中元素鍵名的.,默認(rèn)地,PHP 會(huì)將它們轉(zhuǎn)化為下劃線,因此當(dāng)你傳一個(gè)參數(shù) as.df=ghjk時(shí),你實(shí)際上得到的時(shí)$_REQUEST['as_df'] = 'ghjk'。但在 ModPHP 中,如果你調(diào)用 mod::config()方法,依舊得到的是 $_REQUEST['as.df'] = 'ghjk'。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)