/** * Returns the page item cache. * * @return array */ public function get_page_item_cache() { $data = array(); if ($this->_cache_enabled()) { foreach (self::$_cache->getIdsMatchingTags(array($this->_get_cache_internal_id())) as $id) { if (preg_match('|' . self::CACHE_TAG_PREFIX . "(\\d+)_.*|", $id, $page)) { $data[$page[1]] = self::$_cache->load($this->_get_cache_id($page[1])); } } } return $data; }
/** * Loads the configured driver and validates it. * * @param array|string custom configuration or config group name * @return void */ public function __construct($config = FALSE) { if (is_string($config)) { $name = $config; // Test the config group name if (($config = Kohana::config('cache.' . $config)) === NULL) { throw new Kohana_Exception('cache.undefined_group', $name); } } if (is_array($config)) { // Append the default configuration options $config += Kohana::config('cache.default'); } else { // Load the default group $config = Kohana::config('cache.default'); } // Cache the config in the object $this->config = $config; // Set driver name $driver = 'Cache_' . ucfirst($this->config['driver']) . '_Driver'; // Load the driver if (!Kohana::auto_load($driver)) { throw new Kohana_Exception('core.driver_not_found', $this->config['driver'], get_class($this)); } // Initialize the driver $this->driver = new $driver($this->config['params']); // Validate the driver if (!$this->driver instanceof Cache_Driver) { throw new Kohana_Exception('core.driver_implements', $this->config['driver'], get_class($this), 'Cache_Driver'); } Kohana::log('debug', 'Cache Library initialized'); if (self::$loaded !== TRUE) { $this->config['requests'] = (int) $this->config['requests']; if ($this->config['requests'] > 0 and mt_rand(1, $this->config['requests']) === 1) { // Do garbage collection $this->driver->delete_expired(); Kohana::log('debug', 'Cache: Expired caches deleted.'); } // Cache has been loaded once self::$loaded = TRUE; } }
function __construct() { E_FW::load_File('cache_Core'); $this->_cache = Cache_Core::getInstance(E_FW::get_Config('CACHE')); }
/** * Set a cache item by key. Tags may also be added and a custom lifetime * can be set. Non-string data is automatically serialized. * * @param string $key * @param mixed $data * @param array $tags use NULL * @param integer $lifetime number of seconds until the cache expires * @return boolean */ public function set($key, $data, $tags = NULL, $lifetime = NULL) { Cache::$queries['sets'][] = $key; return parent::set($key, $data, $tags, $lifetime); }
/** * 组件初始化 */ protected static function initialize() { if (self::$initilize === FALSE) { self::$config = Kohana::config('cache'); self::$initilize = TRUE; } }