Heim >php教程 >php手册 >php中smarty模板引擎中缓存的应用

php中smarty模板引擎中缓存的应用

WBOY
WBOYOriginal
2016-06-06 19:55:321195Durchsuche

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 php中smarty模板引擎中缓存的应用: 1,Smarty缓存配置方法: $smarty-cache_dir=“目录名”; //创建缓存目录名 $smarty-caching=true; //开启缓存,为false的时候缓存无效 $smarty-cache_lifetime=60; /

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

    php中smarty模板引擎中缓存的应用:

    1,Smarty缓存配置方法:

    $smarty->cache_dir=“目录名”; //创建缓存目录名

    $smarty->caching=true; //开启缓存,为false的时候缓存无效

    $smarty->cache_lifetime=60; //缓存时间,单位是秒

    2,Smarty缓存的使用与清除

    $marty->display(“cache.tpl”,cache_id); //创建带ID的缓存

    $marty->clear_all_cache(); //清楚所有缓存

    $marty->clear_cache(“index.php”); //清楚index.php中的缓存

    $marty->clear_cache(“index.php”,cache_id); //清楚index.php中指定ID的缓存

    3,Smarty的局部缓存

    第一个: insert_函数默认不缓存,这个属性不能修改

    index.php中,

    function insert_get_time(){

    return date(“Y-m-d H:m:s”);

    }

    index.html中,

    {insert name=“get_time”}

    第二个: smarty_block

    定义一个block:smarty_block_name($params,$content, &$smarty){return $content;} //name表示区域名

    注册block:$smarty->register_block('name', 'smarty_block_name', false); //第三参数false表示该区域不被缓存

    模板写法:{name}内容{/name}

    写成block插件:

    1)定义一件插件函数:block.cacheless.php,放在smarty的plugins目录

    block.cacheless.php的内容如下:

   

    function smarty_block_cacheless($param, $content, &$smarty) {

    return $content;

    }

    ?>

    2) 编写程序及模板

    示例程序:testCacheLess.php

   

    include('Smarty.class.php');

    $smarty = new Smarty;

    $smarty->caching=true;

    $smarty->cache_lifetime = 6;

    $smarty->display('cache.tpl');

    ?>

    所用的模板:cache.tpl

    已经缓存的:{$smarty.now}

    {cacheless}

    没有缓存的:{$smarty.now}

    {/cacheless}

    4自定义缓存

    设置cache_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)作为唯一的cache_id

    如果需要,可使用gzcompress和gzuncompress来压缩和解压

php中smarty模板引擎中缓存的应用

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn