现在的位置: 首页 > 架构设计 > 正文

php的smarty模板引擎有哪些功能?php的smarty模板引擎会遇到哪些问题

2020年05月26日 架构设计 ⁄ 共 1230字 ⁄ 字号 评论关闭

  php是嵌入式HTML脚本语言,为了将HTML和php代码分离,即所谓的逻辑层和表现层,这就是模板引擎的目的。下面学步园小编来讲解下php的smarty模板引擎有哪些功能?php的smarty模板引擎会遇到哪些问题?

  php的smarty模板引擎有哪些功能

  1.存储变量;

  2.读取模板文件;

  3.结合前两个生成输出。

  Code如下:

  test01.php

  $name='xiaoshenge';

  ?>

  test02.php

  name=

  test03.php

  include'test01.php';

  include'test02.php;

  ?>

  当然这里只是简单的模拟如何实现php模板引擎的功能,在php开源社区里著名的smarty就是封装了上面的功能。保存数据->加载模板->编译生成输出文件。有关smarty的应用具体参考手册,这里只是解释其功能原理。

  php的smarty模板引擎会遇到哪些问题

  记录一下smarty缓存遇到的问题。

  如果开启smarty缓存,第一次执行时会将其编译好的输出文件保存到cache目录中,在程序中通过smarty的is_cache()函数检测其cache文件是否过期,若过期会更新缓存,如果没有过期会自动调用cache文件,省去编译的过程。检测cache过期是看模板文件是否在指定的生命周期内是否更改,这里的更改是是通过检测文件的最近修改时间实现的,不是通过检测模板文件内容。

  阻止一个模板文件的整篇被缓存:

  index.php:

  require('Smarty.class.php');

  $smarty=newSmarty;

  $smarty->caching=true;

  functionsmarty_block_dynamic($param,$content,&$smarty){

  return$content;

  }

  $smarty->register_block('dynamic','smarty_block_dynamic',false);

  $smarty->display('index.tpl');

  index.tpl:

  Pagecreated:{"0"|date_format:"%D%H:%M:%S"}

  {dynamic}

  Nowis:{"0"|date_format:"%D%H:%M:%S"}

  ...dootherstuff...

  {/dynamic}

  当重新加载这个页面,你将会注意到这两个日期不同。一个是“动态“,一个是“静态”。你能够在{dynamic}...{/dynamic}之间作任何事情,并且保证它将不会像剩下的页面一样被缓存。

  以上就是关于“php的smarty模板引擎有哪些功能?php的smarty模板引擎会遇到哪些问题”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!

抱歉!评论已关闭.