Smarty


1.Smarty的插件机制:
a)用来拓展Smarty的功能
b)一个插件就是一个函数
2.Smarty的插件的类型:
a)变量调节器
i. 对一个变量或者是一个少量数据信息进行修改
ii. <{变量|函数名称}>
iii.Smarty系统内置:
1.Capitalize 每个单词的首字母大写
2.Date_format 格式化日期
3.Default 给变量设置默认值
4.Escape 对地址转义
5.Unescape 反转义
6.Lower 转小写
7.Upper 转大写
8.Nl2br \n转br标签
9.Replace 字符串替换
10.String_format 字符串格式化
11.Strip 去除空白符
12.Strip_tags 去除标签
13.Truncate 字符串截取
iv.自定义注册插件:
1.局部注册
a)只在当前文件有效
b)自定义一个函数
i.第一个参数即为要修改的变量
ii.后面的参数即为该修改器的其他参数
iii.Function myexplode($content,$separator){
1.Return explode($separator,$content);
iv.}
c)注册插件:
i.$smarty->registerPlugin(“modifier”,”exp”,”myexplode”);
2.全局注册
a)添加插件目录:
i.$smarty->addPluginsDir(“./Plugins”);
b)在该目录下,创建插件文件
i.名称:modifier.插件名称.php
1.Modifier.exp.php
ii.编辑该文件,声明一个函数
1.Function smarty_modofier_插件名称(){}
2.Function smarty_modifier_exp($content,$separator){
a)……
3.}
b)常规函数(自定义函数)
i.通常情况下,用来调用一个功能
ii.内置函数:
1.Config_load 加载配置文件
2.Debug 调试页面
3.Include 加载模板文件(相对于模板路径)
4.Counter 计数器
5.Cycle 切换器
6.Html_checkboxes 复选框
7.Html_radios 单选框
8.Html_options 下拉菜单
9.Html_select_date 选择日期
10.mailto 发送邮件
iii.注册插件:
1.局部注册
a)自定义一个函数
i.第一个参数是所有属性的列表(数组)
ii.Smarty对象
iii.Function myfunction($params,$smarty){
1.$color = ……
2.Return ‘’;
iv.}
b)注册
i.$smarty->registerPlugin(“function”,’myfont’,’myfunction’);
2.全局注册
a)添加插件目录
i.$smarty->addPluginsDir(“./Plugins”);
b)在该目录下创建一个插件文件
i.文件名称:
1.Function.插件名称.php
ii.编辑文件:
1.Function smarty_function_插件名称(){}
c)块状函数
i.对大量的数据信息进行修改
ii.流程控制:
1.顺序流程
2.分支流程
a)单向分支
b)双向分支
c)多向分支
d)巢状分支
i.<{if condition}>
1.…
ii.<{elseif condition}>
1.…
iii.<{else}>
1.…
iv.<{/if}>
3.循环流程
a)While
b)For
c)Do…while
d)Foreach
i.For
1.<{for $i=0 to 10}>
2.…
3.<{/for}>
ii.While
1.<{while condition}>
a)…
2.<{/while}>
iii.Foreach
1.<{foreach $data as $key=>$val}>
2.<{foreachelse}>
3.<{/foreach}>
iv.Section
1.<{section name=’user’ loop=$users}>
a)<{$users[user]}>
2.<{sectionelse}>
3.<{/section}>
4.特殊流程
a)Break
b)Continue
5.其他块状函数:
a)Literal 忽略smarty解析
b)strip 去除空白符
iii.自定义块状函数:
1.局部注册
a)自定义一个函数
i.参数一:所有的属性列表
ii.参数二:包含的内容
iii.参数三:smarty对象
iv.参数四:重复
b)注册
i.$smarty->registerPlugin(“block”,”strip_tags”,”myfunction”);
2.全局注册
a)添加插件目录
i.$smarty->addPluginsDir(“./Plugins”);
b)创建文件
i.Block.strip_tags.php
ii.Function smarty_block_strip_tags(){}
3.Smarty模板继承(了解)
a)<{extends file=”parent.html”}>
b)覆盖:<{block name=”title”}><{/block}>
c)在后追加:<{block name=”title” append}><{/block}>
d)在前追加:<{block name=”title” prepend}><{/block}>
e)在父模板中间插入:<{block name=”title”}>
i.<{$smarty.block.child}>
f)<{/block}>
g)在子模板中间插入:<{block name=”title”}>
i.<{$smarty.block.parent}>
h)<{/block}>
4.Smarty模板引擎缓存技术(必须掌握)
a)设置缓存
i.$smarty->caching = 1;//开启缓存
ii.缓存文件和合成文件只要模板发生改变,就会重新生成
iii.Caching的值:
1.如果该值为1,开启缓存,第一次访问会产生一个缓存,此时如果更新了缓存生命周期,会在刚刚更新的缓存生命周期的秒数后重新更新缓存
a)例如:
i.$smarty->caching = 1;
ii.$smarty->cache_lifetime = 3600;
b)访问后产生一个3600秒生命周期的缓存
c)此时,更改声明周期:
i.$smarty->cache_lifetime = 30;
d)访问后,该缓存会在30秒后过期,重新生成一个30秒生命周期的缓存。
2.如果该值为2,开启缓存,第一次访问会产生一个缓存,此时如果更新了缓存生命周期,该缓存会等待至第一次产生的缓存的生命周期结束才会重新产生缓存文件。
a)例如:
i.$smarty->caching = 2;
ii.$smarty->cache_lifetime = 3600;
b)访问过后,缓存的生命周期为3600秒,如果此时改变了生命周期
i.$smarty->cache_lifetime = 30;
c)访问页面后,缓存不会更新,必须要等待至3600秒之后才会过期。
iv.局部不发生缓存:
1.<{nocache}>
a)中间的内容不会发生缓存
2.<{/nocache}>
v.缓存的其他方法:
1.$smarty->isCached(“10.html”);
a)可以帮助我们判断模板是否已经存在对应的缓存文件
2.整页缓存:
a)$smarty->display(“11.html”,$_SERVER[‘REQUEST_URI’]);
b)If(!$smarty->isCached(“11.html”,$_SERVER[‘REQUEST_URI’])){
i.//查询数据库
c)}
vi.清除缓存:
1.ClearAllCache()
a)清除所有缓存
2.clearCache()
a)$smarty->clearCache(“11.html”);
i.将11.html的所有缓存全部清除
b)$smarty->clearCache(“11.html”,$cachid);
i.清除11.html模板的对应的缓存id的缓存
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值