PHP Classes

File: tests/smartyHandler.php

Recommend this page to a friend!
  Classes of Oleg Butuzov   Cacheme   tests/smartyHandler.php   Download  
File: tests/smartyHandler.php
Role: Example script
Content type: text/plain
Description: Smarty Example
Class: Cacheme
Cache data in different types of container
Author: By
Last change:
Date: 15 years ago
Size: 1,791 bytes
 

Contents

Class file image Download
<?
   
   
   
function SmartyBridge_Cache_handler($action, &$smarty_obj, &$cache_content, $tpl_file=null, $cache_id=null, $compile_id=null, $exp_time=null){
        global
$cache_obj;
       
$CacheID = md5($tpl_file.$cache_id.$compile_id);
       

       
$dsn = 'memcache://127.0.0.1:11211';
       
// $dsn = 'sqlite://sqlite.db';
       
       
$cache_obj = isset($cache_obj) && is_object($cache_obj) ? $cache_obj : CacheMeLoader::Factory($dsn);
               
//$cache_obj->lifetime = $smarty_obj->cache_lifetime;
       
        //die();
       
switch ($action) {
                        case
'read':
               
$cache_content = $cache_obj->get($CacheID);
                return
$cache_content;
            break;
            case
'write':

                return
$cache_obj->set($CacheID, $cache_content);
            break;
            case
'clear':
                if(empty(
$cache_id) && empty($compile_id) && empty($tpl_file)) {
                    return
$cache_obj->clear();
                } else {
                    return
$cache_obj->clear($cache_id);
                }
            break;
            default:
               
$smarty_obj->_trigger_error_msg("cache_handler: unknown action \"$action\"");
            break;
        }

    }
   
    include
'libs/Smarty/Smarty.class.php';
    include
dirname(dirname(__FILE__)).'/Cacheme/Cacheme.php';
   
$smarty = new Smarty;
   
$smarty->cache_handler_func = 'SmartyBridge_Cache_handler';
   
$smarty->template_dir = dirname(__FILE__).'/';
   
$smarty->compile_dir = dirname(__FILE__).'/';
   
$smarty->cache_dir = dirname(__FILE__).'/_tmp/_tmp_templates_cache';
   
$smarty->force_compile = false;
   
$smarty->caching = true;
       
$smarty->cache_lifetime = 5;
   
   
$var = 'me cached ';
    if (
$smarty->is_cached('test.tpl', $var)){
       
$smarty->display('test.tpl', $var);
        die(
' @cached');
    } else {
       
$smarty->assign('var', $var);
               
$smarty->display('test.tpl', $var);
        die(
' @generated');
    }
   
?>