Smarty模版引擎概述
- 2014-03-10 22:16:00
- admin 原创
- 4400
作用:分离前端设计和后台程序。
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 = ‘}>’; //设置模板语言中的右结束符
?>
/**
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的脚本中必须用到该方法,而且在一个脚本中只能用一次。
版权声明
版权声明:本站原创文章,转载请注明作者和出处。
标签云集
云禅道