摘要:#配置文件 require __DIR__ . '/../libs/Smarty.class.php'; $smarty = new Smarty(); $smarty -> setTemplateDir(__DIR__ . '/../temp/'); $sma
#配置文件
require __DIR__ . '/../libs/Smarty.class.php';
$smarty = new Smarty();
$smarty -> setTemplateDir(__DIR__ . '/../temp/');
$smarty -> setCompileDir(__DIR__ . '/../temp_c/');
$smarty -> setCacheDir(__DIR__ . '/../cache/');
$smarty -> setConfigDir(__DIR__ . '/../config');
$smarty -> setCaching(false);
try{
$pdo = new PDO('mysql:host=127.0.0.1;dbname=news','root','root');
}catch(PDOException $e){
exit($e -> getMessage());
}#应用文件
require( __DIR__ . '/../config/config.php');
$stmt = $pdo -> prepare('SELECT * FROM user WHERE id > :id');
$stmt -> execute([':id' => 0]);
$rows = $stmt -> fetchAll(PDO::FETCH_ASSOC);
$smarty -> assign('rows',$rows);
$smarty -> display('index.html');
function setBgColor($key){
if( ($key%2) == 0){
return "bgcolor = '#ebebeb'";
}
}
function sex($sex){
if($sex == 0){
return '男';
}else{
return '女';
}
}
function status($status){
if($status == 0){
return '<span style="color:red">关闭中</span>';
}else{
return '<span style="color:blue">开启中</span>';
}
}<!--模板文件-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<table width='80%' cellpadding="2" border="2">
<tr bgcolor="gray">
<td>序列</td>
<td>名称</td>
<td>性别</td>
<td>年龄</td>
<td>邮箱</td>
<td>密码</td>
<td>状态</td>
<td>时间</td>
</tr>
{foreach $rows as $key => $row}
<tr {setBgColor($key)}>
<td>{$row.id}</td>
<td>{$row.name}</td>
<td>{sex($row.sex)}</td>
<td>{$row.age}</td>
<td>{$row.email}</td>
<td>{$row.password}</td>
<td>{status($row.status)}</td>
<td>{date('Y-m-d H:i:s', $row.create_time)}</td>
</tr>
{foreachelse}
<h2>没有数据!</h2>
{/foreach}
</table>
</body>
</html>结果:

总结:
模板存在的好处在于可以把php文件和html文件独立出来,方便维护;
配置文件可以存放一些网站通用基础信息,方便多文件使用;
模板可以读取变量,常量,数组,对象还可以自定义函数;
模板中获取值时变量,常量使用 '.' 语法; 数组使用 '.' 语法或 '[]' 的方法,对象使用‘->’的方法; 对象中的方法要加‘()’;
模板中使用常量 $smarty.const.xxxx;
模板中使用系统变量 $smarty.xxx.xxxx 如:post,get,session $smarty.post.name $smarty.get.name $smarty.session.name
模板中使用配置项 需要先引入文件{config_load file='app.conf'} 再 $smarty.config.app_name
疑点:
链接数据库时$pdo = new PDO(‘xxxx’); 和 $pdo = new \PDO(‘xxxx’);PDO加了反斜线有什么区别;PDO具体在开发环境的那个位置,什么时候使用反斜线,什么时候不用;
引入配置文件{config_load file='app.conf'} 和在项目文件index.php中通过require 'xxxx'; 有什么区别;在开发中是不是两个方式取任何一种都行;有没有使用场景限制;
批改老师:韦小宝批改时间:2018-11-28 14:01:57
老师总结:关于pdo前面\是根命名空间,不加会在当前命名空间中查找是否含有PDO类。关于引入require 'xxxx'; 可以直接引入,但是在HTML文件中是不可以使用的{config_load file='app.conf'}这种是使用模板引擎的写法!不同模板引擎不同写法