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

黄舟
Libérer: 2023-03-06 16:04:02
original
1295 Les gens l'ont consulté

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);
Copier après la connexion
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的缓存
Copier après la connexion
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){
}
Copier après la connexion
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"://清空
}
Copier après la connexion
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}
Copier après la connexion
é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;
}
?>
Copier après la connexion

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;);
?>
Copier après la connexion
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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!