Maison > Article > développement back-end > Explication détaillée de l'application du modèle intelligent de mise en cache de fichiers PHP
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
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('Smarty.class.php'); $smarty = new Smarty; $smarty->caching=true; $smarty->cache_lifetime = 6; $smarty->display('cache.tpl'); ?>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!