codecamp

系统加载顺序

了解 ModPHP 的系统加载顺序有助于更好的在应用开发中部署程序。

在每一次调用执行时,ModPHP 会通过 __ROOT__/mod/common/init.php 文件进行初始化操作,加载系统所需文件和应用配置,以及解析请求并调用模板。

具体的初始化过程如下:

  1. 加载 mod/functions/ 目录下的 extension.func.php 扩展函数文件和 mod.func.php 核心函数文件;
  2. 加载 mod/classes/mod.class.php 核心类文件;
  3. 加载默认模块类文件和其他类库文件,它们存放在 mod/classes/ 目录下;
  4. 加载自定义模块类文件,它们存放在 user/classes/ 目录下;
  5. 加载默认模块函数文件,它们存放在 mod/functions/ 目录下;
  6. 加载其他函数文件,他们存放在 user/functions/目录下。
  7. 加载模板目录下的 functions.php 文件(如果存在);
  8. 预备运行环境并根据请求定义常量 __DISPLAY____OBJ____ACT__
  9. 最后,加载 __DISPLAY__ 模板文件或者执行 __OBJ____ACT__ 操作。

ModPHP 是强调前后端一致的,所以,在预备运行环境时,ModPHP 会将$_GET、$_POST 和 $_REQUEST 变量进行修改。因为表单传值或者 AJAX 都会将布尔型的 truefalse,以及数字、 nullundefined 等转换成字符串,所以 ModPHP 会在预备运行环境时将字符串 truefalse 转换为布尔值的 true 和 false,将字符串 nullundefined 都转换成 null,而将小于 2147483647 的数字字符串转为整型。

同时,ModPHP 也保留一些变量中元素键名的.,默认地,PHP 会将它们转化为下划线,因此当你传一个参数 as.df=ghjk时,你实际上得到的时$_REQUEST['as_df'] = 'ghjk'。但在 ModPHP 中,如果你调用 mod::config()方法,依旧得到的是 $_REQUEST['as.df'] = 'ghjk'

伪静态规则
自动关联与生成
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

挂钩机制

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }