模板引擎

基本语法

PHP模板缓存输出

function render()
{
    ob_start();
    include($filename);
    $content = ob_get_contents();
    ob_end_clean();
    return $content;
}

可选使用 extract 命令从数组中将变量导入到当前的符号表,要注意变量作用域,避免交叉影响。

模板布局

layout 机制

机制

常规机智,正则匹配,替换成php语言,然后进行解析

缓存机制

判断缓存文件和模板文件的修改时间,来实现主动清理,或者强制刷新缓存。

如果临时文件夹不存在时,尝试使用系统临时文件夹 比如 /tmp/


模板继承

模板继承不同于模板布局,甚至来说,应该在模板布局的上层。模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载。

因此,模板继承的优势其实是设计基础模板中的区块(block)和子模板中替换这些区块。