对smarty的一点了解

Posted 叶夏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对smarty的一点了解相关的知识,希望对你有一定的参考价值。

 我觉得smarty还是比较简单的,但是感觉用起来还是有一点麻烦,smarty是模板引擎,我个人的理解,它是为了分离输出的代码内容和样式。

 

Smarty编译时的处理过程是源php文件->模板文件(可能调用多个或多次)->源php文件。。。
也就是说不影响原php文件的其他处理和输出。所以smarty模板文件可以是完整的html,也可以是其中一部分。

smarty处理过程
smarty将php源文件,首先编译成中间文件(也是php),如果启用缓存,再根据编译文件生成缓存文件(也是php),需要缓存的部分全部是硬编码。
之后的每次访问都会访问编译文件(如果编译文件已经存在),一次编译多次调用(可以是单文件的多次,也可以是多文件的多次),如果启用缓存且有缓存文件而且没有过期,则直接访问缓存文件,跳过编译文件。
编译文件一经生成,就不会被自动更新,除非模板文件或者配置文件更改。源php文件修改是不会引发重新编译的。一旦编译文件重新生成,缓存文件也必然重新生成。



我们可以建不同的php源文件文件夹,把编写的php文件按一定的分类放在不同的文件夹中。
然后在每个文件夹中都创建一个自定义的config文件,在config文件中创建一个新的$smarty = new Smarty 对象
然后把所有不同的文件夹的php文件的缓存,配置文件,插件,模版,编译目录都设置到同一个缓存,配置文件,插件,模版,编译目录
让该文件夹下所有PHP源文件都引用该配置文件即可获取相同配置

以上是关于对smarty的一点了解的主要内容,如果未能解决你的问题,请参考以下文章

对java沙箱机制的一点了解

工作后对单元测试学习的一点总结

PHP - Smarty 模板 - 如何创建与上下文无关的模板

smarty

一段递归代码引发的对于传参以及关于基本类型的一点了解

前端学PHP之Smarty模板引擎