PHPcms模板编译过程

后台模板编译:

后台模板的渲染代码如下:

$this->admin_tpl('admin_list');

其实现方法如下:

/**
 * 加载后台模板
 * @param string $file 文件名
 * @param string $m 模型名
 */
final public static function admin_tpl($file, $m = '') {
   $m = empty($m) ? ROUTE_M : $m;
   if(empty($m)) return false;
   return PC_PATH.'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.'templates'.DIRECTORY_SEPARATOR.$file.'.tpl.php';
}

渲染的基本过程为:

首先, admin_tpl根据传入的参数来判断加载哪个模块,如果有传入m的值,则直接调用该模块,否则使用ROUT_M模块,该模块在创建应用时已经被定义:
这里写图片描述

即默认的content模块。然后包含文件模块中对应的文件。

前台模板的编译:

前台模板的渲染代码如下:

include template('content',$template);

前台模板的渲染过程为:

  1. 判断确定样式下指定模块下的要编译的.html结尾的文件是否存在,如果不存在则去编译默认(default)样式下的模块的.html结尾的文件。
  2. 判断模板缓存文件(caches/caches_template/样式/模块/模板名称.php)是否存在,
    如果不存在,则直接去重新编译模板。如果存在则去判断模板文件和编译文件最近修改的时间, 如果模板文件的修改时间大于编译文件的时间说明,模板在编译后还进行了修修改, 则重新编译模板文件。
    判断代码如下:
    这里写图片描述

  3. 模板编译的过程如下:即template_complie()方法的执行过程。
    首先根据传入的参数进行目录的匹配,查找要进行编译的.html文件,读取文件内容,定义模板缓存文件的存储目录及模板缓存文件路径,并开启所有读写权限。然后对读取的模板内容进行字符替换,也即进行模板解析。然后将解析的内容重新写入模板缓存文件中。同时开启读写权限。
    编译模板的代码如下:
    这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值