1, Smarty cache configuration:
Copy the code as follows:
$smarty->cache-dir="directory name"; //Create cache directory name
$smarty->caching=true; //Enable caching , the cache is invalid when it is false
$smarty->cache_lifetime=60; //Cache time, unit is seconds
2, the use and clearing of Smarty cache
Copy the code code as follows:
$marty->display( "cache.tpl",cache_id); //Create a cache with ID
$marty->clear_all_cache(); //Clear all caches
$marty->clear_cache("index.php"); //Clear index Cache in .php
$marty->clear_cache("index.php',cache_id); //Clear the cache with the specified ID in index.php
3, Smarty’s local cache
The first one: insert_function default It is not cached and this attribute cannot be modified.
How to use: Example
index.php,
function insert_get_time(){
return date("Y-m-d H:m:s");
}
index.html,
{ insert name="get_time"}
Second: smarty_block
Define a block: smarty_block_name($params,$content, &$smarty){return $content;} //name represents the area name
Register block:$smarty- >register_block('name', 'smarty_block_name', false); //The third parameter false means that the area is not cached
Template writing method: {name}content{/name}
Written as block plug-in:
1) Define one piece Plug-in function: block.cacheless.php, placed in smarty’s plugins directory
block.cacheless.php’s content is as follows:
function smarty_block_cacheless($param, $content, &$smarty) {
return $content;
}
?>
2) Write programs and templates
Sample program: testCacheLess.php
include('Smarty.class.php');
$smarty = new Smarty;
$smarty-> caching=true;
$smarty->cache_lifetime = 6;
$smarty->display('cache.tpl');
?>
Used template: cache.tpl
Already cached: {$smarty. now}
{cacheless}
No cache: {$smarty.now}
{/cacheless}
4 Custom cache
Set cache_handler_func to use a custom function to handle the cache
For example:
$smarty-> cache_handler_func = "myCache";
function myCache($action, &$smarty_obj, &$cache_content, $tpl_file=null, $cache_id=null, $compile_id=null){
}
This function is generally based on $action Determine the current operation of the cache:
switch($action){
case "read"://read cache content
case "write"://write cache
case "clear"://clear
}
Generally use md5 ($tpl_file.$cache_id.$compile_id) as the only cache_id
If necessary, you can use gzcompress and gzuncompress to compress and decompress
For more related articles, please pay attention to the PHP Chinese website (www.php.cn)!