>  기사  >  백엔드 개발  >  PHP 파일 캐싱 스마트 템플릿 적용에 대한 자세한 설명

PHP 파일 캐싱 스마트 템플릿 적용에 대한 자세한 설명

黄舟
黄舟원래의
2017-03-14 16:30:291255검색

1. 캐시 사용
smarty의 캐시를 활성화하려면 캐시를 true로 설정하고 cache_dir을 지정하세요.
cache 생존 시간 단위를 지정하세요. 초입니다
동일한 페이지에 대해 여러 개의 서로 다른 캐시를 생성하려면 display에 두 번째 매개변수인 캐시_id를 추가하거나

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

와 같이 가져옵니다. 이 기능을 사용할 수 있습니다. $_GETs

2. 캐시 지우기

clear_all_cache();//清除所有缓存
clear_cache('index.tpl');//清除index.tpl的缓存
clear_cache('index.tpl',cache_id);//清除指定id的缓存

3. 사용자 정의 캐싱 방법 사용

캐시_handler_func 설정 및 사용자 정의 방법 사용 함수캐시 처리
예:

$smarty->cache_handler_func = "myCache";
function myCache($action, &$smarty_obj, &$cache_content, $tpl_file=null, $cache_id=null, $compile_id=null){
}

이 함수는 일반적으로 $action을 기반으로 캐시의 현재 작업을 결정합니다.

switch($action){
case "read"://读取缓存内容
case "write"://写入缓存
case "clear"://清空
}

일반적으로 사용되는md5($tpl_file.$cache_id.$compile_id)를 유일한 캐시 ID로
필요한 경우 gzcompress 및 gzuncompress를 사용하여 압축 및 압축 해제할 수 있습니다.

캐시를 부분적으로 닫습니다

특정 영역(캐시만 필요)에서 캐시를 무효화하려면 다음과 같은 여러 가지 방법이 있습니다.
삽입:
삽입 태그에서 사용할 처리 함수를 정의합니다. 함수 이름 형식은 insert_xx(배열 $params)입니다. , object &$smarty) 여기서 xx는 insert의 이름입니다. 즉, 정의한 함수가 insert_abc라면 템플릿에서 사용되는 메소드는 {insert name='abc'} 매개변수는 $params를 통해 전달됩니다
삽입 플러그인으로 만들 수도 있습니다. 파일 이름은 insert.xx.PHP이고 함수 이름은 smarty_insert_aa($params,&$smarty)입니다. xx의 정의는 위와 같습니다
register_block:

定义一个block:smarty_block_name($params,$content, &$smarty){return $content;} //name表示区域名
注册block:$smarty->register_block('name', 'smarty_block_name', false); //第三参数false表示该区域不被缓存
模板写法:{name}内容{/name}

블록 플러그인으로 작성:

1) 플러그인 함수 정의: block.cacheless.php 및 smarty 플러그인 디렉토리에 넣으세요
block.cacheless.php의 내용은 다음과 같습니다:

<?php
function smarty_block_cacheless($param, $content, &$smarty) {
     return $content;
}
?>

2) 프로그램 및 템플릿 작성
샘플 프로그램: testCacheLess.php

<?php
include(&#39;Smarty.class.php&#39;);
$smarty = new Smarty;
$smarty->caching=true;
$smarty->cache_lifetime = 6;
$smarty->display(&#39;cache.tpl&#39;);
?>

사용된 템플릿: 캐시.tpl

已经缓存的:{$smarty.now}<br>{cacheless}
没有缓存的:{$smarty.now}{/cacheless}

위 내용은 PHP 파일 캐싱 스마트 템플릿 적용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.