Smarty 是什么?
为什么使用它?
使用案例和工作流程
语法比较
模板继承
最佳实践
速成教程
编译器函数仅在编译模板期间被调用。它们对于将 PHP 代码或时效性静态内容注入到模板中很有用。如果在相同名称下既注册了编译器函数又注册了自定义函数,则编译器函数具有优先权。
mixed smarty_compiler_name( |
$params, | |
$smarty) ; |
array $params
;object $smarty
;向编译器函数传递两个参数:包含属性值预编译字符串的 params 数组以及 Smarty 对象。它应该返回要注入到已编译模板中的代码,包括周围的 PHP 标记。
范例 18.6 一个简单的编译器函数
<?php /* * Smarty plugin * ------------------------------------------------------------- * File: compiler.tplheader.php * Type: compiler * Name: tplheader * Purpose: Output header containing the source file name and * the time it was compiled. * ------------------------------------------------------------- */ function smarty_compiler_tplheader($params, Smarty $smarty) { return "<?php\necho '" . $smarty->_current_file . " compiled at " . date('Y-m-d H:M'). "';\n?>"; } ?>
该函数可以从模板中这样调用
{* this function gets executed at compile time only *} {tplheader}
已编译模板中的结果 PHP 代码类似于这样
<?php echo 'index.tpl compiled at 2002-02-20 20:02'; ?>