一、模板引擎:是为了将用户的使用界面和业务数据分离而产生的,会生成特定的html文档。
二、作用:
1)将网站的数据(php)代码和界面HTML代码进行分离,即php只能写php代码,html的demo界面只能写静态页 面,不能嵌套其他的代码,比如之前嵌套的php代码,这样也是为了代码复用率高一些。
2)缓存:例如访问某宝网站,在第一次进入网站页面时,会自动将数据信息缓存下来,这样第二次再进入的时候,加载也会变得快很多,因为第一次已经将其加载到本地。
三、应用
1、准备工作如下:
1)首先我们要去www.smarty.net下载这个模板引擎,这里用的是smarty-3.1.30
2)下载好之后,首先我们将这个模板引擎的libs库复制一份到你新建的文件夹,这里我起名叫Smarty,然后就开始我们正式的学习吧!
3)文件夹和库都弄好之后,再在Smarty文件里面新建一个index.php文件和View文件夹,View用来存放所有的模板文件html页面,来实现代码和页面分离。
4)前面的都弄好之后,我们可以在libs里面看到Smarty.class.php这个类文件,我们暂时只用到这一个引擎类;注意:以后在用这类的库文件时,只要后缀写的是.class那么此文件就是个类文件,所以我们以后在写命名的时候也尽量这样写;
2、开始进入主题:
index.php代码:
1)首先要引入Smarty引擎类库
require "./libs/Smarty.class.php";
2)实例化Smarty对象
$s= new Smarty();
3)初始化参数
$s->template_dir = "./View";//模板存储目录
$s->compile_dir = "./View_c";//编译缓存文件的目录,本来有一个默认的目录,这里修改了以下缓存目录的名字
4)分配变量
$s->assign('id',1);
$s->assign('name','琳达');
$s->assign('sex','女');
$s->assign('time',date('Y-m-d H:i:s'));
5)解析模板
$s->display("index.html");//此处的路径可以直接写被解析的模板,因为在3)步已经定义好了模板的存储目录,所以会直接找到此模板
index.html代码部分:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<table>
<tr><td>id:</td><td>{$id}</td></tr>
<tr><td>name:</td><td>{$name}</td></tr>
<tr><td>sex:</td><td>{$sex}</td></tr>
<tr><td>time:</td><td>{$time}</td></tr>
</table>
</body>
</html>