Smarty 之基本应用

Smarty 引擎既然是分离 Web 应用程序逻辑层和表现层的工具,目的也是让应用程序员和美工分开扮演不同的角色,所以程序员和美工都应该学习和使用 Smarty ,但学习内容有所不同。作为程序员需要学习 Smarty 的“模板程序员篇”,主要内容有:

一、Smarty 引擎安装。

二、变量的分配和加载显示模板。

三、以插件行驶扩展 Smarty。

四、缓存控制技术。

五、编写 Smarty 模板的基本语法。

六、变量。

七、变量修改器和组合修改器。

八、自定义函数。

九、Smarty 内置函数。

十、模板继承机制。

PHP 程序员学习的内容相对于美工来说还是比较容易,除了 PHP 是语法外,基本上不涉及其他的内容,只需要按 Smarty 的语法规则进行编程即可。而大量的 Smarty 应用还是在美工的模板设计上,因为美工平时就很少接触有些业务逻辑,所以在模板中使用的一些 Smarty 语法对于他们来说还是有点难度。当然模板引擎在设计的时候也会考虑美工的基础,尽量将 Smarty 在模板中使用的语法向美工熟悉的 HTML 语法靠拢。

PHP 程序员常用的和 Smarty 相关的操作;在使用 Smarty 技术开发项目时, PHP 程序员除了需要完成整个项目的业务逻辑还要把用户请求的动态内容通过 Smarty 引擎交给模板去显示。 Smarty 是安装前面已经介绍,扩充自定义插件和缓存控制技术后面有单独的介绍,PHP 的变量分配和加载模板进行显示,这个是通过访问 Smarty 对象中的方法完成,前面也只使用过一次,这里有必要正式介绍一下 assign()和 display()这两个方法。

assign()方法

在PHP 脚本中调用这个方法可以为 Smarty  模板文件中的变量赋值,可以传递一对名称/数值对,也可以传递包含名称和数值对的关联数组。它的使用方法比较简单,原型如下:

void assign(string varname,mixed var)    //传递一对名称/数值对到模板中
void assign(mixed var)                          //传递包含名称/数值的关联数组到模板中

通过调用 Smarty 对象中的 assign()方法可以将任何 PHP 所支持的类型数据赋值给模板中的变量,包含数组和对象类型。下面给出使用两个方式分配变量到模板中,也就是制定一对“名称/数值”和指定包含“名称/数值”的联合数组:

//指定一对“名称/数值”的使用方式
$smarty->assign("name","Fred");        //将字符串“Fred”赋给模板中的变量{$name}
$smarty->assign("address","$address");        //将变量赋$address的值赋给模板中的变量{$address}
//指定包含“名称/数值”的联合组数的使用方式
$smarty->assign(array("city"=>"Lincokn","state"=>"Nebraska"));    //这种方式很少使用

display()方法

基于 Smarty 的脚本中必须用到这个方法,而且在一个脚本中只能使用一次,因为它负责获取和显示由 Smarty  引擎应用的模板。这个方法的原型如下:

Vold display (string template [,string cache_id [,string compile_id]])  //用来获取和显示 Smarty 模板

  

猜你喜欢

转载自www.cnblogs.com/liqingabc/p/13390177.html