Smarty模板引擎

什么是smarty?

       Smarty是一个使用PHP写出来的PHP模板引擎,目的是要使用PHP程序同美工分离,使的程序员改变程序的逻辑内容时不会影响到美工的页面设计,美工重新修改页面时不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。(也易于程序的多样式开发)什么是smarty?

优缺点看叙述没意思,靠自己在开发中去体会,此处不再赘述。

首先在GitHub上下载最新版的Smarty,然后解压,我们即将使用到的是最核心的libs文件夹,Smarty给开发人员提供的接口是Smarty.class.php文件,我们实际上只需要导入这个文件就可以使用整个引擎的功能。

好吧,不管使用什么IDE,使用的步骤都是一样的。

首先建立项目,将上面提到的libs文件夹整个的复制到project下面

接下来建立自己的配置文件,经常使用到的配置大致如下:

include_once("libs/Smarty.class.php"); //包含smarty类文件
$smarty = new Smarty(); //建立smarty实例对象$smarty
$smarty->config_dir="Smarty/Config_File.class.php";  // 目录变量
$smarty->caching=false; //是否使用缓存,项目在调试期间,不建议启用缓存
$smarty->template_dir = "./templates"; //设置模板目录
$smarty->compile_dir = "./templates_c"; //设置编译目录
$smarty->cache_dir = "./smarty_cache"; //缓存文件夹
//左右边界符,默认为{},但实际应用当中容易与JavaScript相冲突
$smarty->left_delimiter = "{";
$smarty->right_delimiter = "}";
千万不要忘记按照自己的配置增加对应的文件夹。如上,基本上已经将Smarty加入了我们的项目中。

然后在对应的文件夹templates建立自己的模板文件,以HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <!--记得被替换的变量必须要加上$-->
    <title>模板引擎</title>
</head>
<body>
<h3>{$title[0]}|{$title[1]}</h3>
<hr>
<!--使用的smarty模板引擎的循环操作-->
{section name = list loop = $content}
    <h3 style="color: red">
        {$content[list].key}-{$content[list].date}
        <br>
    </h3>
{/section}
</body>
</html>

开始画重点了,这里出现了模板引擎的一个新知识,内置遍历数组的方法section,在我看来name指代的是索引值,loop指的是被遍历的数组。继续看下文大家便一目了然。

最后的核心index.php文件来了

include ("smarty_inc.php");
$name[] = array("key"=>"今日头条","date"=>"2017-06-01");
$name[] = array("key"=>"昨日回顾","date"=>"2017-05-31");
$row = array("标题","日期");
// 模板变量替换
$smarty->assign("content",$name);
$smarty->assign("title",$row);
// 指定模板文件
$smarty->display("index.html");

assign的作用是替换模板中的变量,display函数用来指定模板文件。Smarty会自动进入模板文件查找对应的文件。

简直完美,使用Smarty模板引擎直接将表现和逻辑层分开了,即将前端和后端分开了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值