21.4 Smarty程序设计
视频讲解:光盘TMlx21Smarty程序设计.exe
通过前面的学习已经知道,在Smarty模板中是不推荐使用PHP代码段的,所有的PHP程序都要另写成文件。Smarty程序的功能主要分为两种:一种功能是和Smarty模板之间的交互,如方法assign、display;另一种功能就是配置Smarty,如变量template_dir、$config_dir等。本节就来学习Smarty程序设计的其他一些方法和配置参数。
21.4.1 Smarty中的常用方法
Smarty中除了使用assign和模板交互外,还有一些比较常用的方法。方法名称和功能说明如表21.3所示。
表21.3 Smarty程序设计常用方法和说明
这些方法在使用上和assign、display基本一样。下面以append方法为例进行讲解。
【例21.9】本例使用append方法向数组$arr中追加两个数组,第3个参数分别设为true和false,查看有什么不同。实例代码如下:(实例位置:光盘TMsl219)
//templates/09/index.html文件 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>{$title}</title> <link rel="stylesheet" href="../css/style.css" /> </head> <body> { foreach key=key item=item from=$arr } {$key} => {$item} <br /> { /foreach } </body> </html> //index.php文件 <?php include '../config.php'; $arr = array("object"=>'book', "type"=>'computer'); $str1 = array('name'=>'php'); $str2 = array('publishing'=>'qinghua'); $smarty->assign('title', ’使用append'); $smarty->assign('arr', $arr); $smarty->append('arr', $str1, true); $smarty->append('arr', $str2); $smarty->display('09/index.html'); ?>
运行结果如图21.10所示。
图21.10 使用append方法
21.4.2 Smarty的配置变量
Smarty中只有一个常量SMARTY_DIR,用来保存Smarty类库的完整路径,其他的所有配置信息都保存到相应的变量中。这里将介绍包括前面章节中接触过的$template_dir等变量的作用及设置。
$template_dir:模板目录。模板目录用来存放Smarty模板,在前面的实例中,所有的.html文件都是Smarty模板。模板的后缀没有要求,一般为.htm、.html等。
$compile_dir:编译目录。顾名思义,就是编译后的模板和PHP程序所生成的文件默认路径为当前执行文件所在的目录下的templates_c目录。进入到编译目录,可以发现许多“%%…%%index.html.php”格式的文件。随便打开一个这样的文件可以发现,实际上Smarty将模板和PHP程序又重新组合成一个混编页面。
$cache_dir:缓存目录。用来存放缓存文件。同样,在cache目录下可以看到生成的.html文件。如果caching变量开启,那么Smarty将直接从这里读取文件。
$config_dir:配置目录。该目录用来存放配置文件。例21.4中所用到的配置文件,就保存到这里。
$debugging:调试变量。该变量可以打开调试控制台。只要在配置文件(config.php)中将$smarty->debugging设为true即可使用。
$caching:缓存变量。该变量可以开启缓存。只要当前模板文件和配置文件未被改动,Smarty就直接从缓存目录中读取缓存文件而不重新编译模板。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。