Smarty模板总结

原创 2018-12-04 14:14:54 195
摘要:一.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中的模板调用起来更加方便了呢!

发布手记

热门词条