smarty在普通php页面使用流程

在文章开始前,我们先简单了解一下为什么要学习smarty?

我们都知道smarty 的应用场景是在本页面解决php与html代码混杂的问题,解决了前段和php程序员的分工,方便以后前段的维修等问题。

为什么还要学习smarty模板?首先现在模板用的非常广泛,工作中,每个项目大多数都用到了框架,每个框架大部分都有自身的应用模板,比如ThinkPHP有自己写的模板think,因为模板原理都相似,所以学习smarty以后,我们在项目开发过程中,再用到框架模板时就不至于那么陌生,况且你又多了种选择(用框架自身模板 或者 smarty模板);其次,就是我们找工作需要;最后,个人追求——体会模板思想,争取自己能写模板。


好,我们回归正题,下面讲讲怎样引用smarty模板!

1:首先,你得有smarty,去官网下载你需要的smarty(下载地址),然后解压到文件夹中

2:引入并实例化smarty,如下:(相对地址,把Smarty.class.php引入到你的php页面上来)

// 引入smarty
require('../smarty3/libs/Smarty.class.php');
// 实例化
$smarty = new Smarty()
3:配置:给smarty指定模板文件和存放编辑完后文件的存放文件夹路径,如下:(前提是两个文件夹都已存在,不存在则创建)

// 配置
$smarty->template_dir = './temp';
$smarty->compile_dir = './comp';

(以上smarty的配置比较麻烦,我们可以新建一个mysmarty.php文件,在里面写一个MySmarty类,用对应继承来统一完成smarty的配置。值得注意的是,在MySmarty里,不能通过直接重写template_dir 和 compile_dir属性来实现配置,因为这2个属性在父类里是私有的,无法重写(即被父类封装了),但可以利用开发的接口,setTemplateDir()和setCompilteDir()来实现。然后在实例化smarty前引进mysmarty.php文件,然后直接实例化MySmarty类就可以了,具体代码如下:

/*
mysmarty.php文件
*/
class MySmarty extends Smarty {
    public function __construct() {
        parent::__construct();

        $this->setTemplateDir('./temp');
        $this->setCompileDir('./comp');
    }
}
require('../Smarty3/libs/Smarty.class.php');
require('./mysmarty.php');
// 实例化
$smarty = new MySmarty();

4:赋值:给标签附上需要的值,模板文件上需要的值直接从已赋值的标签中获取

$title = 'smarty简介';
$content = '赋值操作相关流程';

// 赋值
$smarty->assign('title',$title);
$smarty->assign('content',$content);

// 显示在指定模板
$smarty->display('news.html');
5:模板使用:


    

{$title}

{$content}

 


注意:smarty可以标签赋字符串,数字等值,也可以赋给标签一个数组
           在模板里解析数组时,用{$标签.key},或者{$标签[index]}
           当键为字符串时,即关联数组,只能用$标签.key
           当键为数字时,即索引数组时,用$标签[index],或$标签.key

不想记得话,就都使用$标签.key就可以了

// 从数据库取出会员信息,往往是数组形式
$user = array('name'=>'刘备','age'=>'28','weapon'=>'双剑');


$smarty->assign('name',$user['name']);
$smarty->assign('age',$user['age']);
$smarty->assign('weapon',$user['weapon']);

$zf = array('name'=>'张飞','age'=>'25','weapon'=>'丈八蛇矛');
$smarty->assign('zf',$zf);

$gy = array(0=>'关羽',1=>'25','weapon'=>'青龙偃月刀');
$smarty->assign('gy',$gy);

$smarty->display('liubei.html');
模板文件:


          
姓名:{$name}
年龄:{$age}
兵器:{$weapon}
姓名:{$zf.name}
年龄:{$zf.age}
兵器:{$zf.weapon}
姓名:{$gy[0]}
年龄:{$gy.1}
兵器:{$gy.weapon}

OK,以上就是引用smarty模板的相关流程,over!

你可能感兴趣的:(Smarty,PHP)