最近入职,开始研究公司项目的源码,里面用到了smarty(比较老的技术了),下面我对smarty做一个整理,尽量注释完备一些,争取做到CTRL+C完了直接就能CTRL+V的程度。
嗯,nice。
1、包含smarty类文件,smarty实质就是一个写好的类,包含了直接用就OK了。
include_once("./Smarty/Smarty.class.php"); //包含smarty类文件,用require_once也是可以的,个人认为记忆力好或者逻辑清晰的话完全可以把once去掉
2、把类文件引入之后,就可以创建实例了,之后有关的操作都是利用这个实例完成的。
$smarty = new Smarty(); //建立smarty实例对象$smarty
3、获得这个实例之后我们可以对这个对象的一些属性进行配置,模板编译的时候会根据这些属性或参数的不同进行编译。这些东西不写也可以,都是有默认值的。
$smarty->templates("./templates"); //设置模板目录,编译的时候smarty会直接到这个目录找模板文件
$smarty->templates_c("./templates_c"); //设置编译目录,smarty进行编译的时候会用到,需要保证可读可写
$smarty->cache("./cache"); //缓存目录,smarty可以设计缓存,在缓存有效期内模板不会被再次编译,而是直接返回缓存文件
$smarty->cache_lifetime = 0; //缓存时间,以秒为单位,-1的时候表示永不过期
$smarty->caching = true; //缓存方式,0不缓存,1根据当前设定的cache_lifetime的值来决定缓存时间,2根据缓存被建立时设置的cache_lifetime的值来决定缓存时间,也可以直接用true或者false来决定是否缓存
$smarty->left_delimiter = "{#"; //设置smarty标签的左边界符,用在模板里,是编译的起点,找到这个符号后smarty开始编译
$smarty->right_delimiter = "#}"; //设置smarty标签的右边界符,用在模板里,是编译的终点,找到这个符号后smarty结束编译
4、初始化工作结束后,就要开始编译了,既然编译的主要工作就是把标签替换成相应的值,那么现在我们需要把相应的值push到smarty里面去(smarty里面的这些值表实际上就是一个数组,KV一一对应的,编译的时候也是遍历一遍这个数组一一替换)。
$smarty->assign("name", "ToyRoy"); //往替换数组里扔一个K是name,而value是ToyRoy的键值对,当模板里有name这个标签的时候,编译时自动替换成ToyRoy
5、一切就绪,下一步就是把模板里的标签替换成具体的内容了,即开始编译。
$smarty->display("index.htm"); //这一步会应用上面的配置来编译模版目录下名称为 index.htm的模板并且输出
今天就先写到这里吧,好多内容写得不全,之后补充。