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 }