完成smarty引入到自己项目中,并对自己创建的模板进行渲染输出

Original 2019-05-07 14:24:34 274
abstract:<?php //index.php include __DIR__."/config/config.php"; $smarty->assign('rows',$rows); //1、单变量的值 $name = "smarty 课堂练习"; $smarty->assign('na
<?php
//index.php
include __DIR__."/config/config.php";
$smarty->assign('rows',$rows);
//1、单变量的值
$name = "smarty 课堂练习";
$smarty->assign('name',$name);
//2、数组:数组
$array=['name'=>'波多野结衣','phone'=>'1221111222','country'=>'日本','birthday'=>'1988-05-24','weight'=>'100','height'=>'163'];
$smarty->assign('arr',$array);

//4、多维数组
$actor=[
    ['name'=>'波多野结衣','phone'=>'1221111222','country'=>'日本','birthday'=>'1988-05-24','weight'=>'100','height'=>'163'],
    ['name'=>'大桥未久','phone'=>'14455554444','country'=>'日本','birthday'=>'1987-05-24','weight'=>'90','height'=>'158'],
    ['name'=>'京香','phone'=>'16644442222','country'=>'日本','birthday'=>'1987-03-26','weight'=>'106','height'=>'165'],
];
$smarty->assign('act',$actor);
//5、对象属性和方法
class Test
{
    public $site='PHP中文网';
    public function welcome()
    {
        return '欢迎来到'.$this->site;
    }
}
$test = new Test;
$smarty->assign('test',$test);
//6、自定义函数
function add($a,$b)
{
    return $a+$b;
}
//7、常量
const SITE_NAME='php中文网';
//8、系统变量
$_POST['user_name']='超级管理员';
$_GET['page']=10;
$smarty->display('index.html');
?>

<!----------------------------------------------原生html php混编------------------------------------------------------>
<!--<!doctype html>-->
<!--<html>-->
<!--<head>-->
<!--    <meta charset="UTF-8">-->
<!--    <meta name="viewport"-->
<!--          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">-->
<!--    <meta http-equiv="X-UA-Compatible" content="ie=edge">-->
<!--    <title>演员信息表</title>-->
<!--</head>-->
<!--<body>-->
<?php //if(count($rows)>0):?>
<!--    <table border="1" cellpadding="5" cellspacing="0" width="60%">-->
<!--        <caption><h2>演员信息表</h2></caption>-->
<!--        <tr bgcolor="#90ee90">-->
<!--            <th>ID</th>-->
<!--            <th>姓名</th>-->
<!--            <th>电话</th>-->
<!--            <th>国籍</th>-->
<!--            <th>出生日期</th>-->
<!--            <th>胸围</th>-->
<!--            <th>身高</th>-->
<!--            <th>入职时间</th>-->
<!--        </tr>-->
<!--        --><?php //foreach ($rows as $row) : ?>
<!--            <tr>-->
<!--                <td>--><?php //echo $row['uid'] ?><!--</td>-->
<!--                <td>--><?php //echo $row['name'] ?><!--</td>-->
<!--                <td>--><?php //echo $row['phone']?><!--</td>-->
<!--                <td>--><?php //echo $row['country'] ?><!--</td>-->
<!--                <td>--><?php //echo $row['birthday'] ?><!--</td>-->
<!--                <td>--><?php //echo $row['weight'] ?><!--</td>-->
<!--                <td>--><?php //echo $row['height'] ?><!--</td>-->
<!--                <td>--><?php //echo date('Y 年 m 月 d 日',$row['add_time']) ?><!--</td>-->
<!--            </tr>-->
<!--        --><?php //endforeach; ?>
<!--    </table>-->
<?php //else:?>
<?php //endif;?>
<!--</body>-->
<!--</html>-->
<!--index.html 模板文件-->
<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>模板文件渲染页面</title>
</head>
<body>
<!--smarty语句嵌入html-->
<table border="1" cellpadding="5" cellspacing="0" width="60%">
    <caption><h2>演员信息表</h2></caption>
    <tr bgcolor="#90ee90">
        <th>ID</th>
        <th>姓名</th>
        <th>电话</th>
        <th>国籍</th>
        <th>出生日期</th>
        <th>胸围</th>
        <th>身高</th>
        <th>入职时间</th>
    </tr>
    {foreach $rows as $row}
    <tr>
        <td>{$row.uid}</td>
        <td>{$row.name}</td>
        <td>{$row.phone}</td>
        <td>{$row.country}</td>
        <td>{$row.birthday}</td>
        <td>{$row.weight}</td>
        <td>{$row.height}</td>
        <td>{$row.add_time|date_format:"%Y-%m-%d"}</td>
    </tr>
    {foreachelse}
    <h2>表中没有数据</h2>
    {/foreach}
</table>
<h3>渲染的单值变量值:{$name}</h3>
<hr>
<h3>渲染的数组变量值:{$arr.name}</h3>
<hr>
<h3>渲染的多维数组变量值:{$act.1.name}</h3>
<hr>
<h3>对象属性和方法值的渲染:属性:{$test->site},方法:{$test->welcome()}</h3>
<hr>
<h3>自定义函数的渲染:{add({$act.0.height},{$act.1.height})}</h3>
<hr>
<h3>常量值的渲染:{$smarty.const.SITE_NAME}</h3>
<hr>
<h3>对post值的渲染:{$smarty.post.user_name}</h3>
<hr>
<h3>对get值的渲染:{$smarty.get.page}</h3>
<hr>
{*读取配置文件*}
{config_load file="app.conf"}
<h3>应用配置文件渲染:{$smarty.config.app_name}</h3>
<h3>应用配置文件渲染:{$smarty.config.page_title}</h3>
<hr>
</body>
</html>
<?php
/**config.php配置文件
 * smarty 模板引擎配置文件
 */
require __DIR__ .'/../libs/Smarty.class.php';

$pdo = new PDO('mysql:host=127.0.0.1;dbname=php_io','root','root');
$stmt=$pdo->prepare("SELECT *FROM user");
$stmt->execute();
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);

$smarty = new smarty();
//配置文件配置:必选
//模板文件所在目录
$smarty->setTemplateDir(__DIR__.'/../temp');
//模板编译文件所在目录
$smarty->setCompileDir(__DIR__.'/../temp_c');
//缓存目录
$smarty->setCacheDir(__DIR__.'/../cache');
//配置目录
$smarty->setConfigDir(__DIR__.'/../config');

//可选配置
$smarty->setLeftDelimiter('{');
$smarty->setRightDelimiter('}');

//配置缓存
$smarty->setCaching(false);
$smarty->setCacheLifetime(60*60*24*7);

20190507140338.jpg




经过本章的学习,学会了html+php混编和读取数据库数据到页面中运用了比如:

<?php //if(count($rows)>0):?>
<!--    <table border="1" cellpadding="5" cellspacing="0" align="center" width="60%">-->
<!--        <caption><h2>演员信息表</h2></caption>-->
<!--        <tr bgcolor="#90ee90">-->
<!--            <th>ID</th>-->
<!--            <th>姓名</th>-->
<!--            <th>电话</th>-->
<!--            <th>国籍</th>-->
<!--            <th>出生日期</th>-->
<!--            <th>胸围</th>-->
<!--            <th>身高</th>-->
<!--            <th>入职时间</th>-->
<!--        </tr>-->
<!--        --><?php //foreach ($rows as $row) : ?>
<!--            <tr>-->
<!--                <td>--><?php //echo $row['uid'] ?><!--</td>-->
<!--                <td>--><?php //echo $row['name'] ?><!--</td>-->
<!--                <td>--><?php //echo $row['phone']?><!--</td>-->
<!--                <td>--><?php //echo $row['country'] ?><!--</td>-->
<!--                <td>--><?php //echo $row['birthday'] ?><!--</td>-->
<!--                <td>--><?php //echo $row['weight'] ?><!--</td>-->
<!--                <td>--><?php //echo $row['height'] ?><!--</td>-->
<!--                <td>--><?php //echo date('Y 年 m 月 d 日',$row['add_time']) ?><!--</td>-->
<!--            </tr>-->
<!--        --><?php //endforeach; ?>
<!--    </table>-->
<?php //else:?>
<?php //endif;?>

以上代码中的Php语句形式可以消除大括号,这样php+html代码写起来更加简捷.

途中也学会了安装composer,和利用composer下载安装包到项目中,对smarty配置的模板文件编写有初步的掌握。

Correcting teacher:查无此人Correction time:2019-05-08 09:08:11
Teacher's summary:完成的不错。框架多学几个,对工作有帮助。继续加油。

Release Notes

Popular Entries