将Smarty引入到自己项目中,并在自己创建的模板中,将常见的数据类型进行渲染输出

Original 2019-04-08 21:23:00 184
abstract://在config目录下创建config.php进行配置 <?php // Smarty 配置文件 // 用Composer安装的Smarty require __DIR__.'/../vendor/autoload.php'; // 创建Smarty模板引擎对象 $smarty = new 
//在config目录下创建config.php进行配置
<?php
// Smarty 配置文件

// 用Composer安装的Smarty
require __DIR__.'/../vendor/autoload.php';

// 创建Smarty模板引擎对象
$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); //缓存有效期

//echo '默认模板目录是:'.print_r($smarty->getTemplateDir(),true),'<hr>';
//echo '默认模板编译目录是:'.$smarty->getCompileDir();

需要创建另外3个目录,temp、temp_c、cache,在temp文件下新建demo4.html文件用户存放模板文件,新建demo4.php

//demo4.php
<?php
//开启session
session_start();

//加载smarty
require __DIR__.'/config/config.php';

//1.显示单值变量:标量
$name = '小龙女';
//模板赋值
$smarty->assign('name',$name);

//2.数组:索引数组
$courses = ['html5','css3','jQuery','php','mysql'];
//模板赋值
$smarty->assign('courses',$courses);

//3.数组:关联数组
$book = ['name'=>'php开发从入门到放弃','price'=>69,'publish'=>'2018-01-22'];
//模板赋值
$smarty->assign('book',$book);

//4.数组:多维数组
$books[0] = ['name'=>'php开发从入门到放弃','price'=>69,'publish'=>'2018-01-22'];
$books[1] = ['name'=>'Mysql性能分析','price'=>99,'publish'=>'2017-02-10'];
$books[2] = ['name'=>'Javascript高级程序设计','price'=>169,'publish'=>'2016-02-22'];
//模板赋值
$smarty->assign('books',$books);

//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;
$_SESSION['pass'] = sha1('123456');
//模板渲染
$smarty->display('demo4.html');
//demo4.html

{* 注释:显示变量 *}
<h3>我的梦中情人:{$name}</h3>
<h3>我的梦中情人:{"$name `$books.0.name`"}</h3>

{* 注释:显示索引数组元素 *}
<p>前端课程:{$courses[0]},{$courses[1]},{$courses[2]}</p>
<p>前端课程:{$courses['0']},{$courses['1']},{$courses['2']}</p>
<p>前端课程:{$courses.0},{$courses.1},{$courses.2}</p>

{* 注释:显示关联数组元素 *}
<p>书名:《{$book.name}》,价格:{$book.price}元,出版时间:{$book.publish}</p>

{* 注释:显示多维数组元素 *}
<ul>
    <li>书名:《{$books.0.name}》,价格:{$books.0.price}元,出版时间:{$books.0.publish}</li>
    <li>书名:《{$books.1.name}》,价格:{$books.1.price}元,出版时间:{$books.1.publish}</li>
    <li>书名:《{$books.2.name}》,价格:{$books.2.price}元,出版时间:{$books.2.publish}</li>
</ul>

{* 注释:显示对象元素 *}
<p>站点名称:{$test->site}</p>
<h3>{$test->welcome()}</h3>

{* 访问自定义函数 *}
<p>求和:{add(5,2)}</p>
<p>求和:{add($books.1.price,5)}</p>

{* 访问常量 *}
<p>站点常量:{$smarty.const.SITE_NAME}</p>

{* 显示系统变量 *}
<p>POST提交的用户名:{$smarty.post.user_name}</p>
<p>GET提交的用户名:{$smarty.get.page}</p>
<p>SESSION会话中的密码:{$smarty.session.pass}</p>

{* 读取配置文件 *}
{config_load file="app.conf"}
<h3>应用名称是:{$smarty.config.app_name}</h3>
<h3>应用名称是:{$smarty.config.page_title}</h3>

QQ图片20190408212210.png

Correcting teacher:天蓬老师Correction time:2019-04-09 11:19:24
Teacher's summary:smarty模板引擎, 现在仍有大量的软件公司仍在使用, 并且它的设计思想,影响了一大批其它的框架, 所以, 值得好好学

Release Notes

Popular Entries