新浪网技术部的一道笔试题目
请写出smarty模板的特点:
1.速度快
2.编译型
3.缓存技术
4.插件机制
5.强大的表现逻辑
一.下载一个smarty的模板
地址: http://www.smarty.net/download
二.如何配置我们的smarty?
1.解压后,把libs文件夹放在网站根目录下。
2.创建两个文件夹 templates(放模板文件) 和templates_c(放编译后的文件)
*注意:这两个文件名的名字是可以更改的,如下所示
即:$smarty -> template_dir = "./templates";//设置模板目录
$smarty -> compile_dir = "./templates_c";//设置编译目录
$smarty -> cache_dir = "./smarty_cache";//缓存文件夹
最后不要在源代码改动,要改的话就在自己的配置类中改动
三,由于多个文件都要使用自己模板的配置,所以这里可以创建一个smarty模板的配置类,在需要模板php文件中直接引入即可。
下面是配置smarty模板的类 mine.class.php
<?php //创建smarty对象 require_once './libs/Smarty.class.php'; $smarty = new Smarty;//建立smarty实例对象$smarty $smarty -> caching = false;//是否使用缓存 $smarty -> template_dir = "./templates";//设置模板目录 $smarty -> compile_dir = "./templates_c";//设置编译目录 $smarty -> cache_dir = "./smarty_cache";//缓存文件夹 //修改左右边界符号 $smarty -> left_delimiter="<{"; $smarty -> right_delimiter="}>"; $smarty -> assign("var1","hello world");// $smarty -> display("hello.tpl");// ?>
四,在引用自己定义的模板类中,路径建议是使用绝对路径,不要使用相对的路径,这样可以避免找不到模板类
<?php define("ROOT", str_replace("\", "/", dirname(__FILE__))."/"); //使用了一个魔术变量__FILE__ //获取文件所在的路径,再去除文件名名 dirname()函数
//因为windows的路劲符号和其他的不一样 ,所以可以需要替换一下 注意这里需要转义符号 , 所以第一个参数是“\” include ROOT."/libs/Smarty.class.php"; $smarty = new Smarty; // 这是smarty2时期的用法 // $smarty -> template_dir = "./views/"; // $smarty -> compile_dir = "./comps/"; // 以下是smarty3时期用法 $smarty -> setTemplateDir(ROOT."/views/"); $smarty -> setCompileDir(ROOT."/comps/"); // $smarty -> addTemplateDir("./home/"); //就可以让定界符号使用空格 $smarty -> auto_literal = false; //设置定界符号 $smarty -> left_delimiter = "<{"; $smarty -> right_delimiter = "}>";