后台模板编译:
后台模板的渲染代码如下:
$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);
前台模板的渲染过程为:
- 判断确定样式下指定模块下的要编译的.html结尾的文件是否存在,如果不存在则去编译默认(default)样式下的模块的.html结尾的文件。
判断模板缓存文件(caches/caches_template/样式/模块/模板名称.php)是否存在,
如果不存在,则直接去重新编译模板。如果存在则去判断模板文件和编译文件最近修改的时间, 如果模板文件的修改时间大于编译文件的时间说明,模板在编译后还进行了修修改, 则重新编译模板文件。
判断代码如下:
模板编译的过程如下:即template_complie()方法的执行过程。
首先根据传入的参数进行目录的匹配,查找要进行编译的.html文件,读取文件内容,定义模板缓存文件的存储目录及模板缓存文件路径,并开启所有读写权限。然后对读取的模板内容进行字符替换,也即进行模板解析。然后将解析的内容重新写入模板缓存文件中。同时开启读写权限。
编译模板的代码如下: