Maison  >  Article  >  développement back-end  >  Explication détaillée de l'application du modèle intelligent de mise en cache de fichiers PHP

Explication détaillée de l'application du modèle intelligent de mise en cache de fichiers PHP

黄舟
黄舟original
2017-03-14 16:30:291296parcourir

1. Utiliser le cache
Pour activer le cache de smarty, définissez simplement le cache sur true et spécifiez cache_dir Utilisez cache_lefetime pour spécifier la durée de survie du cache, l'unité. est en secondes
Pour générer plusieurs caches différents pour la même page, ajoutez le deuxième paramètre cache_id à
display ou récupérez, comme

$smarty->display('index.tpl',$my_cache_id);
cette fonctionnalité Peut être utilisée pour mettre en cache différents $_GETs


2. Vider le cache

clear_all_cache();//清除所有缓存
clear_cache('index.tpl');//清除index.tpl的缓存
clear_cache('index.tpl',cache_id);//清除指定id的缓存
3. Utiliser la méthode de mise en cache personnalisée

Définir cache_handler_func pour utiliser la fonction

personnalisée gère le cache tel que :

$smarty->cache_handler_func = "myCache";
function myCache($action, &$smarty_obj, &$cache_content, $tpl_file=null, $cache_id=null, $compile_id=null){
}
Cette fonction est généralement basée sur 椐$action pour déterminer le fonctionnement actuel du cache :


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

md5($tpl_file.$cache_id.$compile_id) comme cache_id uniqueSi nécessaire, vous pouvez utiliser gzcompress et gzuncompress pour compresser et décompresser

Quatre,Tourner partiellement hors du cache

Pour invalider le cache dans certaines zones (uniquement le cache requis), il existe plusieurs méthodes :

insert :
Définir le traitement à utiliser par une balise d'insertion Fonction , le format du nom de la fonction est : insert_xx(array $params,
object &$smarty) où xx est le nom de l'insertion C'est-à-dire que si la fonction que vous définissez est insert_abc, la méthode d'utilisation dans le. le modèle est : {insert name='abc'}Les paramètres sont transmis via $params
Il peut également être transformé en plug-in d'insertion. Le nom du fichier est : insert.xx.PHP et le. la fonction est nommée : smarty_insert_aa($params,&$smarty ), la définition xx est la même que ci-dessus
register_block :

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

1) Définissez une fonction plug-in : block.cacheless.php et placez-la dans le répertoire plugins de smarty
Le contenu de block.cacheless.php est le suivant :

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

2 ) Écrire des programmes et des modèles
Exemple de programme : 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;);
?>
Modèle utilisé : cache.tpl

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn