> php教程 > php手册 > php的smarty模板引擎

php的smarty模板引擎

WBOY
풀어 주다: 2016-06-13 10:54:10
원래의
1231명이 탐색했습니다.

php是 嵌入式HTML脚本语言,为了将HTML和php代码分离,即所谓的逻辑层和表现层,这就是模板引擎的目的。为了达到该目的 模板引擎需具备的功能有:

1.存储变量;

2.读取模板文件;

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

Code如下: 

test01.php 

$name='xiaoshenge'; 

?>

test02.php 

 

test 

 

name= 

 

 

test03.php 

include'test01.php'; 

include'test02.php; 

?> 

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

 

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

 

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

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

index.php: 

require('Smarty.class.php'); 

$smarty = new Smarty; 

$smarty->caching = true; 

function smarty_block_dynamic($param, $content, &$smarty) { 

return $content; 

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

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

index.tpl: 

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

{dynamic} 

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

... do other stuff ... 

{/dynamic} 

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿