PHP学习笔记6——Smarty模板引擎
模板引擎的工作原理
1. PDO读取学生信息
代码如下:
yao.php
<?php
//(1)创建PDO对象
$dsn="mysql:host=localhost;port=3306;dbname=itcast;charset=utf8";
$username="root";
$password="";
$pdo=new PDO($dsn,$username,$password);
//(2)执行查询的SQL语句,并返回结果集对象
$sql="SELECT * FROM student";
$PDOStatement=$pdo->query($sql);
//(3)获取多行数据
$arrs=$PDOStatement->fetchAll(PDO::FETCH_ASSOC);
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>学生信息管理中心</title>
</head>
<body>
<h2 align="center">学生信息管理者中心</h2>
<table width="600" border="1" align="center" rules="all" cellpadding="5">
<tr bgcolor="#f0f0f0">
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
</tr>
<?php foreach($arrs as $arr){
?>
<tr align="center">
<td><?php echo $arr['id']?></td>
<td><?php echo $arr['name']?></td>
<td><?php echo $arr['sex']?></td>
<td><?php echo $arr['age']?></td>
</tr>
<?php }?>
</table>
</body>
</html>
2. 如何实现PHP 代码和HTML代码分离
:将学生管理文件的代码分成两个文件:
- 控制器文件:controller.php——纯PHP代码,没有前端代码;
- 视图文件:view.html——前端代码,主要包含HTML、CSS、JS;
先分离,再合并,运行时,只需要运行控制器文件。
代码如下:
controller.php
<?php
//(1)创建PDO对象
$dsn="mysql:host=localhost;port=3306;dbname=itcast;charset=utf8";
$username="root";
$password="";
$pdo=new PDO($dsn,$username,$password);
//(2)执行查询的SQL语句,并返回结果集对象
$sql="SELECT * FROM student";
$PDOStatement=$pdo->query($sql);
//(3)获取多行数据
$arrs=$PDOStatement->fetchAll(PDO::FETCH_ASSOC);
//(4)包含视图文件:文件扩展名是.html结尾的
include "view.html";
view.html
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>学生信息管理中心</title>
</head>
<body>
<h2 align="center">学生信息管理者中心</h2>
<table width="600" border="1" align="center" rules="all" cellpadding="5">
<tr bgcolor="#f0f0f0">
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
</tr>
<?php foreach($arrs as $arr){?>
<tr align="center">
<td><?php echo $arr['id']?></td>
<td><?php echo $arr['name']?></td>
<td><?php echo $arr['sex']?></td>
<td><?php echo $arr['age']?></td>
</tr>
<?php }?>
</table>
</body>
</html>
3.如何彻底去除视图文件中的PHP标记
html代码和PHP代码分离,其实就是前端人员和程序员分离。
- 前端人员喜欢HTML形式代码:{$name}
- php只能解释的代码:<?php echo $name?>
- 查找替换->将{$name}转换为<?php echo $name?>
常用的PHP模板引擎
- Smarty,是所有模板引擎的鼻祖,其他模板引擎都是在SMarty的基础上进行二次开发。
- Heyes Template Class
- FastTemplate
- ShellPage
- STP Simple Template Parser
- OO Template Class
- SimpleTemplate
- bTemplate
- Savant
- ETS - easy template system
- EasyTemplatePHP
- vlibTemplate
- TagTemplate
Smarty入门
什么是Smarty
Smarty就是一个类文件,是有PHP写的类文件。
下载网址:https://www.smarty.net/download
快速入门案例
文件结构:
view.html
<!DOCTYPE HTML>
<html>
<head>
<title></title>
</head>
<body>
姓名:{
$name}<br>
年龄:{
$age}<br>
</body>
</html>
controller.php
<?php
header(