摘要:一.Smarty安装方法 * Composer安装 在Composer中搜索Smarty 下载解压, * 导入到项目中: require 'vendor/autoload.php'; -------------------------------
一.Smarty安装方法
* Composer安装 在Composer中搜索Smarty 下载解压,
* 导入到项目中: require 'vendor/autoload.php';
------------------------------------------------------------
* 官网下载:https://www.smarty.net/download,推荐3.0版本
* 导入到项目中:需要将下载的文件解压加载 'libs/Smarty.class.php'类文件
二.Smarty的配置
* Smarty必选配置: (下方 $smarty = new Smarty())
1.$smarty->setTemplateDir(__DIR__.'/../temp'); //模板目录
2.$smarty->setCompileDir(__DIR__.'/../temp_c'); //编译目录
3.$smarty->setCacheDir(__DIR__.'/../cache'); //缓存目录
4.$smarty->setConfigDir(__DIR__.'/../config'); //配置目录
* 可选配置
1.配置定界符:可选
* $smarty->setLeftDelimiter('{'); //变量左定界符
* $smarty->setRightDelimiter('}'); //变量右定界符
2.配置缓存:可选
* $smarty->setCaching(false); //关闭缓存
* $smarty->setCacheLifetime(60*60*24); //缓存有效时间 单位:秒
三.Smarty模板变量输出
* 模板赋值:
$smarty->assign('模板变量名',$变量);
* 模板渲染
$smarty->dispaly('模板文件');
* 模板注释
{* 注释内容 *}
1.显示单值变量:标量 {$模板变量名}
$name = '坂田银时';
//模板赋值
$smarty->assign('name',$name);
//模板渲染
$smarty->display('demo4.html');{* 注释 :显示变量 *}
<h3>{$name}</h3>2.数组:索引数组 {$模板变量[索引]} {$模板变量['索引']} {$模板变量.索引}
$courses = ['html5','css3','JQuery','php','mysql'];
//模板赋值
$smarty->assign('courses',$courses);
//模板渲染
$smarty->display('demo4.html');{* 显示索引数组元素 *}
<p>前端课程:{$courses[0]},{$courses[1]},{$courses[2]}</p>
<p>前端课程:{$courses['0']},{$courses['1']},{$courses['2']}</p>
<p>前端课程:{$courses.0},{$courses.1},{$courses.2}</p> 3.数组:关联数组 {$模板变量['键名']} {$模板变量.键名}
$book = ['name'=>'PHP开发从入门到决不放弃','price'=>169,'publish'=>'2018-12-4'];
//模板赋值
$smarty->assign('book',$book);
//模板渲染
$smarty->display('demo4.html');{* 显示关联数组 *}
<p>123书名:《{$book['name']}》,价格:{$book['price']}元,出版时间:{$book.publish}</p>4.数组:多维数组 {$模板变量.一维键名.二维键名......}
$books[] = ['name'=>'PHP开发从入门到放弃','price'=>69,'publish'=>'2018-12-4'];
$books[] = ['name'=>'MySQL性能分不分析呢','price'=>109,'publish'=>'2018-11-4'];
$books[] = ['name'=>'JAVAScript高级程序设计','price'=>229,'publish'=>'2015-10-2'];
//模板赋值
$smarty->assign('books',$books);
//模板渲染
$smarty->display('demo4.html');<ul>
<li><p>书名:《{$books.0.name}》,价格;{$books.0.price},出版时间:{$books.0.publish}</p></li>
<li><p>书名:《{$books.1.name}》,价格;{$books.1.price},出版时间:{$books.1.publish}</p></li>
<li><p>书名:《{$books.2.name}》,价格;{$books.2.price},出版时间:{$books.2.publish}</p></li>
</ul>5.对象 {$模板变量->属性} {$模板变量->方法()} 静态方法自己测试的 {类名::方法()} {$模板变量::方法()}
class Test
{
public $site = 'PHP中文网';
public function showLet()
{
return '欢迎来到!'.$this->site;
}
public static function showLet2()
{
return '欢迎来到!';
}
}
$test = new Test();
//模板赋值
$smarty->assign('test',$test);
//模板渲染
$smarty->display('demo4.html');{* 显示对象中的属性 *}
<h1>站点名称:{$test->site}</h1>
<span>站点名称:{$test->showLet()}</span>
<h2>站点名称:{Test::showLet2()}</h2>
<h3>站点名称:{$test::showLet2()}</h3> 6.自定义函数 不用赋值 直接输出 可以传入参数 {方法名()}
function div($a,$b)
{
return round($a/$b,2);
}
//模板渲染
$smarty->display('demo4.html');{* 访问自定义函数 *}
<h4>除法:{div(7,3)}</h4>
<h4>除法:{div($books.0.price,$books.2.price)}</h4> 7.常量,不需要赋值,直接在模板中输出 {$smarty.const.常量名}
const SITE_NAME ='PHP中文网,真海量资源!';
//模板渲染
$smarty->display('demo4.html'); {* 访问常量 *}
<p>站点常量:{$smarty.const.SITE_NAME}</p> 8.系统变量,也不需要赋值,直接在模板中输出 {$smarty.系统变量.键名}
$_POST['user_name'] = '超级管理员';
//$_GET['page'] = 10; //可以直接在地址栏中传入 ?page=123
$_SESSION['pass'] = sha1('123456');
//模板渲染
$smarty->display('demo4.html');{* 显示系统变量 *}
<p>POST提交的数据:{$smarty.post.user_name}</p>
<p>GET提交的数据:{$smarty.get.page}</p>
<p>session提交的数据:{$smarty.session.pass}</p> 9.读取配置文件 {config_load file="app.conf"} 模板中加载配置文件 {$smarty.config.配置名}
{* 读取配置文件 *}
{config_load file="app_conf"}
<h3>应用名称是:{$smarty.config.app_name}</h3>
<h3>应用名称是:{$smarty.config.page_title}</h3>
批改老师:韦小宝批改时间:2018-12-04 14:30:53
老师总结:恩!写的很不错!学了smarty模板引擎是不是感觉tp中的模板调用起来更加方便了呢!