<?php
require_once 'Savant3.php';
$tpl = new Savant3();
$name = "轻量级PHP模板引擎Savant";
$booklist = array(
array(
'author' => 'biuuu',
'title' => '必优博客'
),
array(
'author' => 'Savant',
'title' => '轻量级PHP模板引擎'
)
);
$tpl->title = $name;
$tpl->books = $booklist;
$tpl->display('books.tpl.php');
?>
代码详解
一,包含Savant模板文件,与包含其它模板文件一样,如:
require_once 'Savant3.php';
二,声明一个Savant模板对象,如:
$tpl = new Savant3();
三,定义一个简单变量,如:
$name = "轻量级PHP模板引擎Savant";
四,定义一个二维数组,如:
$booklist = array(
array(
'author' => 'biuuu',
'title' => '必优博客'
),
array(
'author' => 'Savant',
'title' => '轻量级PHP模板引擎'
)
);
五,给模板赋值
$tpl->title = $name;
$tpl->books = $booklist;
六,输出模板
$tpl->display('biuuu.tpl.php');
biuuu.tpl.php模板中使用以上定义的变量和数组
输出变量$tpl->title
<title><?php echo $this->eprint($this->title); ?></title>
输出二维数组$tpl->books = $booklist;
<?php foreach ($this->books as $key => $val): ?>
<tr>
<td><?php echo $this->eprint($val['author']); ?></td>
<td><?php echo $this->eprint($val['title']); ?></td>
</tr>
<?php endforeach; ?>
使用非常简单,与我们平时的PHP输出基本上一样,使用eprint()过滤输出,eprint()函数如下:
public function eprint($value){
$num = func_num_args();
if ($num == 1) {
echo $this->escape($value);
} else {
$args = func_get_args();
echo call_user_func_array(
array($this, 'escape'),
$args
);
}
}
从上eprint()方法可知,eprint()调用了escape()输出,实质是一个htmlspecialchars等的过滤,这与我们很多模板输出是一样的,具体代码大家可以看一下Savant3.php文件。
这里简单的介绍一下这个轻量级的PHP模板引擎,Savant有一个面向对象的模板插件系统和输出过滤器,Savant3.php中已两个包含了这两个工具,如下:
include_once dirname(__FILE__) . '/Savant3/Filter.php';
include_once dirname(__FILE__) . '/Savant3/Plugin.php';
阅读全文
收起全文