第一步:加载Smarty模板引擎,例如:require("Smarty.class.php");。
第二步:建立Smarty对象,例如:$smarty=new Smarty();。
第三步:修改Smarty的默认行为,例如:开启缓存机制、修改模板默认存放目录等。
第四步:将程序中动态获取的变量,通过Smarty对象中的assign()方法置入模板里。
第五步:利用Smarty对象中的display()方法将模板内容输出。
在这五个步骤中,可以将前三个步骤定义在一个公共文件中,像前面介绍过的用来初始化Smarty对象的文件main.inc.php。因为前三步是 Smarty在整个PHP程序中应用的核心,不论是常数定义、外部程序加载、共享变量建立等,都是从这里开始的。所以我们通常都是先将前三个步骤做好放入 一个公共文件中,之后每个PHP脚本中只要将这个文件包含进来就可以了,因此在程序流程规划期间,必须好好构思这个公用文件中设置的内容。后面的两个步骤 是通过访问Smarty对象中的方法完成的,有必要正式地介绍一下assign()和display()两个方法。
在PHP脚本中调用该方法可以为Smarty模板文件中的变量赋值。它的使用比较容易,原型如下所示:
void assign (string varname, mixed var)
//Smarty对象中的方法,用来赋值到模板中
通过调用Smarty对象中的assign()方法,可以将任何PHP所支持的类型数据赋值给模板中的变量,包含数组和对象类型。使用的方式有两种,可以指定一对"名称/数值"或指定包含"名称/数值"的联合数组。如下所示:
//指定一对"名称/数值"的使用方式
$smarty->assign("name","Fred");
//将字符串"Fred"赋给模板中的变量{$name}
$smarty->assign("address",$address);
//将变量$address的值赋给模板中的变量{$address}
//指定包含"名称/数值"的联合数组的使用方式
$smarty->assign(array("city" => "Lincoln","state" =>
"Nebraska")); //这种方式很少使用
2.display()方法
基于Smarty的脚本中必须用到这个方法,而且在一个脚本中只能使用一次,因为它负责获取和显示由Smarty引擎引用的模板。该方法的原型如下所示:
Void display (string template [, string cache_id [, string compile_id]])
//用来获取和显示Smarty模板
第一个参数template是必选的,需要指定一个合法的模板资源的类型和路径。还可以通过第二个可选参数cache_id指定一个缓存标识符的名 称,第三个可选参数compile_id在维护一个页面的多个缓存时使用,这两个可选参数将在本章的16.8节中讨论。在下面的示例中使用多种方式指定一 个合法的模板资源,如下所示:
//获取和显示由Smarty对象中的$template_dir属性所指定目录下的模板文件index.tpl $smarty->display("index.tpl");
//获取和显示由Smarty对象中的$template_dir变量所指
定的目录下子目录admin中的模板文件index.tpl
$smarty->display("admin/index.tpl");
//绝对路径,用来使用不在$template_dir模板目录下的文件
$smarty->display("/usr/local/include/templates/header.tpl");
//绝对路径的另外一种方式,在WINDOS平台下的绝对路径必须使用"file:"前缀
$smarty->display("file:C:/www/pub/templates/header.tpl");
在使用Smarty的PHP脚本文件中,除了基于Smarty的内容需要上面五个步骤外,程序的其他逻辑没有改变。例如,文件处理、图像处理、数据库连接、MVC的设计模式等,使用形式都没有发生变化。
来源:oschina
链接:https://my.oschina.net/u/250233/blog/116182