Smarty概念
Smarty是一个使用PHP写出来的模板引擎,是业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。----来自百度百科
安装Smarty
直接前往官方下载最新的Smarty压缩包,解压得到以下文件:
使用Smarty
项目环境初始化
首先我们单独创建一个项目文件夹phpPracticalTraining
,然后把Smarty文件夹
中的libs文件夹
复制到phpPracticalTraining
里面,然后创建templates
与compiles
文件夹,templates
中放置我们的前端页面,compiles
中放置经过Smarty编译的之后的文件(自动由Smarty完成,不需要我们关心),最后再创建一个cache文件夹
,其作用是放置页面的缓存文件,提高页面渲染速度。
编写代码,实现前端页面与php代码分类
- 在项目根目录下,编写
smarty_config.php
配置smarty的一些参数
<?php
//文件的引入
include './libs/Smarty.class.php';
//定义smarty所使用的文件目录
define('SMARTY_ROOT','./');
//实例化对象
$smarty = new Smarty();
$smarty->cache_dir="caches";//缓存文件夹可选为减轻压力
$smarty->caching=false;//关闭缓存,调试中建议关闭,默认为关闭,在实际运行的时候请打开,减轻服务器压力
$smarty->template_dir="templates";//设置模版目录
$smarty->compile_dir="compiles";//设置编译目录必选
?>
- 把
smarty_config.php
导入到我们的后端php(index.php
)代码当中,并向前端页面传数据
<?php
include 'smarty_config.php';
$data = array(
array(1,'xdl','boy',20),
array(2,'zhf','boy',21)
);
//向前端页面模板传递变量
$smarty->assign('title','学生信息');
$smarty->assign('data',$data);
//指定模板文件显示
$smarty->display('index.html');
?>
templates文件夹
中的前端页面(index.html
)接收数据,再返回整个页面到客户端
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{$title}</title>
</head>
<body>
<table border="1">
<tr>
<td>学号</td>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
</tr>
{foreach from=$data item=v}
<tr>
{foreach from=$v item=v2}
<td>{$v2}</td>
{/foreach}
</tr>
{/foreach}
</table>
</body>
最终的项目文件目录:
运行结果
最后,我们访问http://localhost/phpPracticalTraining/index.php
(注意:是访问后端php文件,而不是直接访问前端页面,否则无法得到后端的数据),成功得到结果。