smarty提升
之前smarty已经初步介绍,下面是对于smarty的一个延伸
一、关于内置标签函数
1、include
语法:{include file="模板文件"}
案列说明:
{include file="com/header.html"}
<body></body>
{include file="com/footer.html"}
2、关于继承模板
有时候避免重复使用相同的代码,这时候我们考虑继承模板
父模板文件:{include file="com/header.html"}
<body>
{block name="content"}
这是我父模板文件内容
{/block}
</body>
{include file="com/footer.html"}
子模板文件:{extends file="父模板文件" append}
{block name="content}
这是我子模板文件内容
{/block}
特别说明:append表示追加的意思,将父模板的内容追加到子模板内容之前
prepend表示将父模板的内容追加到子模板之后
3、加载配置文件 config_load
语法:{config_load file="配置文件名"}
特别说明:在配置时候你的config_dir='./config'下要有你的配置文件名,并且你的变量名要与模板文件中的{#变量名#}保持一致
4、literal :原样输出,如果被它包裹,那么不会依据smarty语法正确解析这样可以避免javascript脚本输出
5、assign:为了简化输出不是为了生成数据
二、缓存系统
1、smarty运行原理:先进行编译(smarty+html)形成编译文件(html+php)执行html
2、将生存好的html文件暂时存起来,如果模板没有发生改变,直接使用缓存即可
3、缓存的基本逻辑:先判断是否存在缓存,有直接使用,没有的话处理业务逻辑,执行模板文件生成缓存展示
4、基本属性
$smarty->caching//开启缓存
特别说明:SMARTY::CACHING_LIFETIME_CRRENT
SMARTY::CACHING_LIFETIME_SAVED
都表示开启缓存的意思,但会影响对有效期的判定
$smary->cache_lifetime//缓存有效期
方法:$smarty->is_Cached("模板文件")
$smarty->cache_dir//缓存的目录
5、不缓存
{nocache}
这里表示你不需要缓存的内容
{/nocache}
6、单模板多缓存,我们可以给它增加一个标识符$id
is_Cached("模板文件",$id)
display("模板文件",$id)
7、清除缓存
(1)、clearAllCache()//表示全部清除缓存
(2)、clearCache(null)//全部清除,但会提示错误
(3)、clearCache("模板文件",1)//表示清除在模板下ID为1的缓存内容
(4)、clearCache(null,1)//表示清除所有Id为1的缓存内容
(5)、clearCache("模板文件")//表示清除该模板文件所有的缓存内容
8、生产环境配置
$smarty->force_compile=false;//强制编译,每次执行从smarty到php+html的混编
$smarty->compile_check=fasle;//每次执行时,都要检测模板是否改动,如果改动需要重新编译一但进入生产环境,不需要改动,需要将其关闭