Smarty模版引擎概述

2014-03-10 22:16:00
admin
原创
4099
作用:分离前端设计和后台程序。
Smarty模版引擎的安装:
将libs文件夹复制到网站主目录下即可,在执行PHP脚本时,通过r e q u i r e()语句将libs目录中的Smarty.class.php类文件加载进来,Smarty类库就可以使用了,(注意:Smarty.class.php中S大写)。
Smarty模版引擎的应用:
加载Smarty类—》创建对象—》初始化对象—》应用Smarty对象。
这里重点说下初始化:
实例化Smarty类的对象以后,需要对Smarty对象进行一些初始化设置。
在项目中,经常需要初始化设置的成员属性如下:
$template_dir          //设置模版文件存放目录
     $smarty->setTemplateDir(“./templates/”);
     $smarty->getTemplateDir();         //得到当前模版目录
$compile_dir          //Smarty编译过的所有模版文件存放目录
     $smarty->setCompileDir(“./templates_c/”);
     $smarty->getCompileDir();         //得到当前编译目录路径
$conifg_dir               //配置文件目录
     $smarty->setConfigDir(“./conifgs/”);
     $smarty->getConfigDir();         //得到配置文件目录路径
$plugins_dir               //插件的目录
     $smarty->setPluginsDir(“./plugins/”);
     $smarty->getPluginsDir();          //得到插件目录路径
$left_delimiter               //模版中左结束符变量,默认是“{”
$right_delimiter               //模版中右结束符变量,默认是“}”
$caching               //是否缓存模版的输出
$cache_dir               //在启动缓存的特性下,设置缓存文件目录
     $smarty->setCacheDir(“./cache/”);
     $smarty->getCacheDir();              //得到当前缓存目录
$cache_lifetime               //定义模版缓存邮箱时间长度,单位秒

项目中,为了避免重复配置路径,通常在一个独立的文件里配置以上变量,并在每个需要使用Smarty 的脚本中包含这个文件即可。(该文件可命名为init.inc.php)
<?php
    /**
        file: init.inc.php Smarty对象的实例化及初使化文件
    */
    define(“ROOT”, str_replace(“\\”, “/”,dirname(__FILE__)).’/’);         //指定项目的根路径
    r e q u i r e ROOT.’libs/Smarty.class.php’;                                       //加载Smarty类文件         
    $smarty = new Smarty();                                                       //实例化Smarty类的对象$smarty

    /* 推荐使用Smarty3以上版本方式设置默认的路径,设置成功后都返回$smarty对象本身,可以使用连贯操作 */
    $smarty ->setTemplateDir(ROOT.’templates/’)                  //设置所有模板文件存放的目录
  //        ->addTemplateDir(ROOT.’templates2/’)                   //可以添加多个模板目录(前后台各一个)
            ->setCompileDir(ROOT.’templates_c/’)                 //设置所有编译过的模板文件存放的目录
            ->setPluginsDir(ROOT.’plugins/’)                       //设置为模板扩充插件存放的目录
            ->setCacheDir(ROOT.’cache/’)                         //设置缓存文件存放的目录
            ->setConfigDir(ROOT.’configs’);                      //设置模板配置文件存放的目录
            

    $smarty->caching = false;                                      //设置Smarty缓存开关功能
    $smarty->cache_lifetime = 60*60*24;                    //设置模板缓存有效时间段的长度为1天
    $smarty->left_delimiter = ‘<{‘;                                //设置模板语言中的左结束符
    $smarty->right_delimiter = ‘}>’;                              //设置模板语言中的右结束符

    ?>

模版中变量的分配和加载现实模版
assign(变量名,值)方法
在PHP中调用该方法可以为Smarty模版文件中的变量赋值。
可以将任意的数据类型(包括数组或对象)赋值给模版中的变量,程序员只管把数据用该函数统统分配给模版变量,不用管数据是什么类型。
display()方法
基于Smarty的脚本中必须用到该方法,而且在一个脚本中只能用一次。
版权声明

版权声明:本站原创文章,转载请注明作者和出处。

本站点采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议