00001 <?php 00025 include CORE_PATH . 'extensions/cache/cache_interface.php'; 00029 include CORE_PATH . 'extensions/cache/drivers/file_cache.php'; 00033 class Cache 00034 { 00040 protected static $_id = null; 00046 protected static $_group = 'default'; 00052 protected static $_lifetime = null; 00058 protected static $_active = true; 00066 public static function get ($id, $group = 'default') 00067 { 00068 if (! self::$_active) 00069 return null; 00070 self::$_id = $id; 00071 self::$_group = $group; 00072 return call_user_func(array(self::get_driver() , 'get'), $id, $group); 00073 } 00083 public static function save ($value, $lifetime = null, $id = false, $group = 'default') 00084 { 00085 if (! self::$_active) 00086 return false; 00090 if (! $id) { 00091 $id = self::$_id; 00092 $group = self::$_group; 00093 } 00094 if ($lifetime) 00095 $lifetime = strtotime($lifetime); 00096 return call_user_func(array(self::get_driver() , 'save'), $id, $group, $value, $lifetime); 00097 } 00106 public static function start ($lifetime, $id, $group = 'default') 00107 { 00108 if ($data = self::get($id, $group)) 00109 return $data; 00110 self::$_lifetime = $lifetime; 00111 ob_start(); 00112 } 00119 public static function end ($save = true) 00120 { 00121 if (! $save) { 00122 ob_end_flush(); 00123 return false; 00124 } 00125 $value = ob_get_contents(); 00126 ob_end_flush(); 00127 return self::save($value, self::$_lifetime, self::$_id, self::$_group); 00128 } 00135 public static function clean ($group = false) 00136 { 00137 return call_user_func(array(self::get_driver() , 'clean'), $group); 00138 } 00146 public static function remove ($id, $group = 'default') 00147 { 00148 return call_user_func(array(self::get_driver() , 'remove'), $id, $group); 00149 } 00155 public static function get_driver () 00156 { 00157 return 'FileCache'; 00158 } 00164 public static function active ($active) 00165 { 00166 self::$_active = $active; 00167 } 00168 }