diff options
author | Meik Sievertsen <acydburn@phpbb.com> | 2009-10-04 18:13:59 +0000 |
---|---|---|
committer | Meik Sievertsen <acydburn@phpbb.com> | 2009-10-04 18:13:59 +0000 |
commit | bf8ac19eaa8d74f9dfd6d597190f5664e7339382 (patch) | |
tree | c3ad876736748e36cb9176a0248cc43badfc1d9a /phpBB/includes/acm | |
parent | 3215bbf88864139dc8c7e9ac5773b1ea8a7e96c1 (diff) | |
download | forums-bf8ac19eaa8d74f9dfd6d597190f5664e7339382.tar forums-bf8ac19eaa8d74f9dfd6d597190f5664e7339382.tar.gz forums-bf8ac19eaa8d74f9dfd6d597190f5664e7339382.tar.bz2 forums-bf8ac19eaa8d74f9dfd6d597190f5664e7339382.tar.xz forums-bf8ac19eaa8d74f9dfd6d597190f5664e7339382.zip |
Move trunk/phpBB to old_trunk/phpBB
git-svn-id: file:///svn/phpbb/trunk@10210 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/acm')
-rw-r--r-- | phpBB/includes/acm/acm_apc.php | 388 | ||||
-rw-r--r-- | phpBB/includes/acm/acm_eaccelerator.php | 352 | ||||
-rw-r--r-- | phpBB/includes/acm/acm_file.php | 344 | ||||
-rw-r--r-- | phpBB/includes/acm/acm_memcache.php | 392 | ||||
-rw-r--r-- | phpBB/includes/acm/acm_xcache.php | 336 | ||||
-rw-r--r-- | phpBB/includes/acm/bootstrap.php | 487 |
6 files changed, 0 insertions, 2299 deletions
diff --git a/phpBB/includes/acm/acm_apc.php b/phpBB/includes/acm/acm_apc.php deleted file mode 100644 index fa92de2b50..0000000000 --- a/phpBB/includes/acm/acm_apc.php +++ /dev/null @@ -1,388 +0,0 @@ -<?php -/** -* -* @package acm -* @version $Id$ -* @copyright (c) 2009 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -/** -* ACM File Based Caching -* @package acm -*/ -class acm -{ - var $vars = array(); - var $is_modified = false; - - var $sql_rowset = array(); - var $sql_row_pointer = array(); - var $cache_dir = ''; - - /** - * Set cache path - */ - function acm() - { - $this->cache_dir = $phpbb_root_path . 'cache/'; - } - - /** - * Load global cache - */ - function load() - { - // grab the global cache - $this->vars = apc_fetch('global'); - - if ($this->vars !== false) - { - return true; - } - - return false; - } - - /** - * Unload cache object - */ - function unload() - { - $this->save(); - unset($this->vars); - unset($this->sql_rowset); - unset($this->sql_row_pointer); - - $this->vars = array(); - $this->sql_rowset = array(); - $this->sql_row_pointer = array(); - } - - /** - * Save modified objects - */ - function save() - { - if (!$this->is_modified) - { - return; - } - - apc_store('global', $this->vars, 31536000); - - $this->is_modified = false; - } - - /** - * Tidy cache - */ - function tidy() - { - // cache has auto GC, no need to have any code here :) - - set_config('cache_last_gc', time(), true); - } - - /** - * Get saved cache object - */ - function get($var_name) - { - if ($var_name[0] == '_') - { - if (!$this->_exists($var_name)) - { - return false; - } - - return apc_fetch($var_name); - } - else - { - return ($this->_exists($var_name)) ? $this->vars[$var_name] : false; - } - } - - /** - * Put data into cache - */ - function put($var_name, $var, $ttl = 31536000) - { - if ($var_name[0] == '_') - { - apc_store($var_name, $var, $ttl); - } - else - { - $this->vars[$var_name] = $var; - $this->is_modified = true; - } - } - - /** - * Purge cache data - */ - function purge() - { - // Purge all phpbb cache files - $dir = @opendir($this->cache_dir); - - if (!$dir) - { - return; - } - - while (($entry = readdir($dir)) !== false) - { - if (strpos($entry, 'sql_') !== 0 && strpos($entry, 'data_') !== 0 && strpos($entry, 'ctpl_') !== 0 && strpos($entry, 'tpl_') !== 0) - { - continue; - } - - $this->remove_file($this->cache_dir . $entry); - } - closedir($dir); - - apc_clear_cache('user'); - - unset($this->vars); - unset($this->sql_rowset); - unset($this->sql_row_pointer); - - $this->vars = array(); - $this->sql_rowset = array(); - $this->sql_row_pointer = array(); - - $this->is_modified = false; - } - - /** - * Destroy cache data - */ - function destroy($var_name, $table = '') - { - if ($var_name == 'sql' && !empty($table)) - { - if (!is_array($table)) - { - $table = array($table); - } - - foreach ($table as $table_name) - { - // gives us the md5s that we want - $temp = apc_fetch('sql_' . $table_name); - - if ($temp === false) - { - continue; - } - - // delete each query ref - foreach ($temp as $md5_id => $void) - { - apc_delete('sql_' . $md5_id); - } - - // delete the table ref - apc_delete('sql_' . $table_name); - } - - return; - } - - if (!$this->_exists($var_name)) - { - return; - } - - if ($var_name[0] == '_') - { - apc_delete($var_name); - } - else if (isset($this->vars[$var_name])) - { - $this->is_modified = true; - unset($this->vars[$var_name]); - - // We save here to let the following cache hits succeed - $this->save(); - } - } - - /** - * Check if a given cache entry exist - */ - function _exists($var_name) - { - if ($var_name[0] == '_') - { - return true; - } - else - { - if (!sizeof($this->vars)) - { - $this->load(); - } - - return isset($this->vars[$var_name]); - } - } - - /** - * Load cached sql query - */ - function sql_load($query) - { - // Remove extra spaces and tabs - $query = preg_replace('/[\n\r\s\t]+/', ' ', $query); - $query_id = sizeof($this->sql_rowset); - - $temp = apc_fetch('sql_' . md5($query)); - - if ($temp === false) - { - return false; - } - - $this->sql_rowset[$query_id] = $temp; - $this->sql_row_pointer[$query_id] = 0; - - return $query_id; - } - - /** - * Save sql query - */ - function sql_save($query, &$query_result, $ttl) - { - // Remove extra spaces and tabs - $query = preg_replace('/[\n\r\s\t]+/', ' ', $query); - - // determine which tables this query belongs to - preg_match('/FROM \\(?(\\w+(?: \\w+)?(?:, ?\\w+(?: \\w+)?)*)\\)?/', $query, $regs); - $tables = array_map('trim', explode(',', $regs[1])); - - foreach ($tables as $table_name) - { - if (($pos = strpos($table_name, ' ')) !== false) - { - $table_name = substr($table_name, 0, $pos); - } - - $temp = apc_fetch('sql_' . $table_name); - if ($temp === false) - { - $temp = array(); - } - $temp[md5($query)] = true; - apc_store('sql_' . $table_name, $temp, $ttl); - } - - // store them in the right place - $query_id = sizeof($this->sql_rowset); - $this->sql_rowset[$query_id] = array(); - $this->sql_row_pointer[$query_id] = 0; - - while ($row = phpbb::$db->sql_fetchrow($query_result)) - { - $this->sql_rowset[$query_id][] = $row; - } - phpbb::$db->sql_freeresult($query_result); - - apc_store('sql_' . md5($query), $this->sql_rowset[$query_id], $ttl); - - $query_result = $query_id; - } - - /** - * Ceck if a given sql query exist in cache - */ - function sql_exists($query_id) - { - return isset($this->sql_rowset[$query_id]); - } - - /** - * Fetch row from cache (database) - */ - function sql_fetchrow($query_id) - { - if ($this->sql_row_pointer[$query_id] < sizeof($this->sql_rowset[$query_id])) - { - return $this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]++]; - } - - return false; - } - - /** - * Fetch a field from the current row of a cached database result (database) - */ - function sql_fetchfield($query_id, $field) - { - if ($this->sql_row_pointer[$query_id] < sizeof($this->sql_rowset[$query_id])) - { - return (isset($this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]][$field])) ? $this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]][$field] : false; - } - - return false; - } - - /** - * Seek a specific row in an a cached database result (database) - */ - function sql_rowseek($rownum, $query_id) - { - if ($rownum >= sizeof($this->sql_rowset[$query_id])) - { - return false; - } - - $this->sql_row_pointer[$query_id] = $rownum; - return true; - } - - /** - * Free memory used for a cached database result (database) - */ - function sql_freeresult($query_id) - { - if (!isset($this->sql_rowset[$query_id])) - { - return false; - } - - unset($this->sql_rowset[$query_id]); - unset($this->sql_row_pointer[$query_id]); - - return true; - } - - /** - * Removes/unlinks file - */ - function remove_file($filename, $check = false) - { - if ($check && !@is_writable($this->cache_dir)) - { - // E_USER_ERROR - not using language entry - intended. - trigger_error('Unable to remove files within ' . $this->cache_dir . '. Please check directory permissions.', E_USER_ERROR); - } - - return @unlink($filename); - } -} - -?>
\ No newline at end of file diff --git a/phpBB/includes/acm/acm_eaccelerator.php b/phpBB/includes/acm/acm_eaccelerator.php deleted file mode 100644 index c6d83da049..0000000000 --- a/phpBB/includes/acm/acm_eaccelerator.php +++ /dev/null @@ -1,352 +0,0 @@ -<?php -/** -* -* @package acm -* @version $Id$ -* @copyright (c) 2005 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License -* -*/ - -/** -* ACM Memcache Based Caching -* @package acm -*/ -class acm -{ - var $vars = array(); - var $is_modified = false; - - var $sql_rowset = array(); - var $sql_row_pointer = array(); - var $cache_dir = ''; - - /** - * Set cache path - */ - function acm() - { - $this->cache_dir = $phpbb_root_path . 'cache/'; - } - - /** - * Load global cache - */ - function load() - { - // grab the global cache - $temp = eaccelerator_get('global'); - - if ($temp !== null) - { - $this->vars = $temp; - } - else - { - return false; - } - - return true; - } - - /** - * Unload cache object - */ - function unload() - { - $this->save(); - unset($this->vars); - unset($this->sql_rowset); - unset($this->sql_row_pointer); - } - - /** - * Save modified objects - */ - function save() - { - if (!$this->is_modified) - { - return; - } - - eaccelerator_put('global', $this->vars, 31536000); - - $this->is_modified = false; - } - - /** - * Tidy cache - */ - function tidy() - { - eaccelerator_gc(); - - set_config('cache_last_gc', time(), true); - } - - /** - * Get saved cache object - */ - function get($var_name) - { - if ($var_name[0] == '_') - { - $temp = eaccelerator_get($var_name); - - if ($temp !== null) - { - return $temp; - } - else - { - return false; - } - } - else - { - if (!sizeof($this->vars)) - { - $this->load(); - } - return (isset($this->vars[$var_name])) ? $this->vars[$var_name] : false; - } - } - - /** - * Put data into cache - */ - function put($var_name, $var, $ttl = 31536000) - { - if ($var_name[0] == '_') - { - eaccelerator_put($var_name, $var, $ttl); - } - else - { - $this->vars[$var_name] = $var; - $this->is_modified = true; - } - } - - /** - * Purge cache data - */ - function purge() - { - // Purge all phpbb cache files - $dir = @opendir($this->cache_dir); - - if (!$dir) - { - return; - } - - while (($entry = readdir($dir)) !== false) - { - if (strpos($entry, 'sql_') !== 0 && strpos($entry, 'data_') !== 0 && strpos($entry, 'ctpl_') !== 0 && strpos($entry, 'tpl_') !== 0) - { - continue; - } - - @unlink($this->cache_dir . $entry); - } - closedir($dir); - - foreach (eaccelerator_list_keys() as $var) - { - eaccelerator_rm(substr($var['name'], 1)); - } - - unset($this->vars); - unset($this->sql_rowset); - unset($this->sql_row_pointer); - - $this->is_modified = false; - } - - /** - * Destroy cache data - */ - function destroy($var_name, $table = '') - { - if ($var_name == 'sql' && !empty($table)) - { - if (!is_array($table)) - { - $table = array($table); - } - - foreach ($table as $table_name) - { - // gives us the md5s that we want - eaccelerator_lock('sql_' . $table_name); - $temp = eaccelerator_get('sql_' . $table_name); - if ($temp === null) - { - continue; - } - - // delete each query ref - foreach ($temp as $md5_id => $void) - { - eaccelerator_lock('sql_' . $md5_id); - eaccelerator_rm('sql_' . $md5_id); - eaccelerator_unlock('sql_' . $md5_id); - } - - // delete the table ref - eaccelerator_rm('sql_' . $table_name); - eaccelerator_unlock('sql_' . $table_name); - } - - return; - } - - if ($var_name[0] == '_') - { - eaccelerator_rm($var_name); - } - else if (isset($this->vars[$var_name])) - { - $this->is_modified = true; - unset($this->vars[$var_name]); - - // We save here to let the following cache hits succeed - $this->save(); - } - } - - /** - * Load cached sql query - */ - function sql_load($query) - { - // Remove extra spaces and tabs - $query = preg_replace('/[\n\r\s\t]+/', ' ', $query); - $query_id = sizeof($this->sql_rowset); - - $temp = eaccelerator_get('sql_' . md5($query)); - - if ($temp === null) - { - return false; - } - - $this->sql_rowset[$query_id] = $temp; - - $this->sql_row_pointer[$query_id] = 0; - - return $query_id; - } - - /** - * Save sql query - */ - function sql_save($query, &$query_result, $ttl) - { - // Remove extra spaces and tabs - $query = preg_replace('/[\n\r\s\t]+/', ' ', $query); - - // determine which tables this query belongs to - preg_match('/FROM \\(?(\\w+(?: \\w+)?(?:, ?\\w+(?: \\w+)?)*)\\)?/', $query, $regs); - $tables = array_map('trim', explode(',', $regs[1])); - - foreach ($tables as $table_name) - { - if (($pos = strpos($table_name, ' ')) !== false) - { - $table_name = substr($table_name, 0, $pos); - } - - $temp = eaccelerator_get('sql_' . $table_name); - if ($temp === null) - { - $temp = array(); - } - $temp[md5($query)] = true; - eaccelerator_put('sql_' . $table_name, $temp, $ttl); - } - - // store them in the right place - $query_id = sizeof($this->sql_rowset); - $this->sql_rowset[$query_id] = array(); - $this->sql_row_pointer[$query_id] = 0; - - while ($row = phpbb::$db->sql_fetchrow($query_result)) - { - $this->sql_rowset[$query_id][] = $row; - } - phpbb::$db->sql_freeresult($query_result); - - eaccelerator_put('sql_' . md5($query), $this->sql_rowset[$query_id], $ttl); - - $query_result = $query_id; - } - - /** - * Ceck if a given sql query exist in cache - */ - function sql_exists($query_id) - { - return isset($this->sql_rowset[$query_id]); - } - - /** - * Fetch row from cache (database) - */ - function sql_fetchrow($query_id) - { - if ($this->sql_row_pointer[$query_id] < sizeof($this->sql_rowset[$query_id])) - { - return $this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]++]; - } - - return false; - } - - /** - * Fetch a field from the current row of a cached database result (database) - */ - function sql_fetchfield($query_id, $field) - { - if ($this->sql_row_pointer[$query_id] < sizeof($this->sql_rowset[$query_id])) - { - return (isset($this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]][$field])) ? $this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]][$field] : false; - } - - return false; - } - - /** - * Seek a specific row in an a cached database result (database) - */ - function sql_rowseek($rownum, $query_id) - { - if ($rownum >= sizeof($this->sql_rowset[$query_id])) - { - return false; - } - - $this->sql_row_pointer[$query_id] = $rownum; - return true; - } - - /** - * Free memory used for a cached database result (database) - */ - function sql_freeresult($query_id) - { - if (!isset($this->sql_rowset[$query_id])) - { - return false; - } - - unset($this->sql_rowset[$query_id]); - unset($this->sql_row_pointer[$query_id]); - - return true; - } -} - -?>
\ No newline at end of file diff --git a/phpBB/includes/acm/acm_file.php b/phpBB/includes/acm/acm_file.php deleted file mode 100644 index e073230d49..0000000000 --- a/phpBB/includes/acm/acm_file.php +++ /dev/null @@ -1,344 +0,0 @@ -<?php -/** -* -* @package acm -* @version $Id$ -* @copyright (c) 2005 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -/** -* Define file-based cache. -* @package acm -*/ -class phpbb_acm_file extends phpbb_acm_abstract -{ - /** - * @var string The cache directory to use - */ - public $cache_dir = ''; - - /** - * @var array|bool The cache types this class supports. True indicates support for all types. - */ - public $supported = true; - - /** - * Set cache directory - * - * @param string $cache_prefix The cache prefix the instance is responsible for - * @access public - */ - public function __construct($cache_prefix) - { - $this->cache_dir = PHPBB_ROOT_PATH . 'cache/'; - $this->cache_prefix = $cache_prefix; - } - - /** - * {@link phpbb_acm_abstract::get() get()} - */ - public function get($var_name) - { - if ($var_name[0] === '#') - { - $var_name = substr($var_name, 1); - return $this->get_global($var_name); - } - - if (!$this->exists($var_name)) - { - return false; - } - - @include($this->cache_dir . $this->cache_prefix . '_' . $var_name . '.' . PHP_EXT); - - // If no data there, then the file expired... - if ($expired) - { - // Destroy - $this->destroy($var_name); - return false; - } - - return $data; - } - - /** - * {@link phpbb_acm_abstract::put() put()} - */ - public function put($var_name, $data, $ttl = 31536000) - { - if ($var_name[0] === '#') - { - $var_name = substr($var_name, 1); - return $this->put_global($var_name, $data, $ttl); - } - - $filename = $this->cache_dir . $this->cache_prefix . '_' . $var_name . '.' . PHP_EXT; - - if ($fp = @fopen($filename, 'wb')) - { - @flock($fp, LOCK_EX); - fwrite($fp, "<?php\nif (!defined('IN_PHPBB')) exit;\n\$expired = (time() > " . (time() + $ttl) . ") ? true : false;\nif (\$expired) { return; }\n\$data = " . (sizeof($data) ? "unserialize(" . var_export(serialize($data), true) . ");" : 'array();')); - @flock($fp, LOCK_UN); - fclose($fp); - - phpbb::$system->chmod($filename, phpbb::CHMOD_READ | phpbb::CHMOD_WRITE); - } - - return $data; - } - - - /** - * {@link phpbb_acm_abstract::exists() exists()} - */ - public function exists($var_name) - { - if ($var_name[0] === '#') - { - $var_name = substr($var_name, 1); - return $this->exists_global($var_name); - } - - return file_exists($this->cache_dir . $this->cache_prefix . '_' . $var_name . '.' . PHP_EXT); - } - - /** - * {@link phpbb_acm_abstract::destroy() destroy()} - */ - public function destroy($var_name) - { - if ($var_name[0] === '#') - { - $var_name = substr($var_name, 1); - $this->destroy_global($var_name); - } - - if (!$this->exists($var_name)) - { - return false; - } - - $this->remove_file($this->cache_dir . $this->cache_prefix . '_' . $var_name . '.' . PHP_EXT, true); - } - - /** - * {@link phpbb_acm_abstract::load() load()} - */ - public function load() - { - // grab the global cache - if (file_exists($this->cache_dir . $this->cache_prefix . '_global.' . PHP_EXT)) - { - @include($this->cache_dir . $this->cache_prefix . '_global.' . PHP_EXT); - return true; - } - - return false; - } - - /** - * {@link phpbb_acm_abstract::unload() unload()} - */ - public function unload() - { - if (!$this->is_modified) - { - return; - } - - $filename = $this->cache_dir . $this->cache_prefix . '_global.' . PHP_EXT; - - if ($fp = @fopen($filename, 'wb')) - { - @flock($fp, LOCK_EX); - fwrite($fp, "<?php\nif (!defined('IN_PHPBB')) exit;\n\$this->vars = unserialize(" . var_export(serialize($this->vars), true) . ");\n\$this->var_expires = unserialize(" . var_export(serialize($this->var_expires), true) . ");"); - @flock($fp, LOCK_UN); - fclose($fp); - - phpbb::$system->chmod($filename, phpbb::CHMOD_READ | phpbb::CHMOD_WRITE); - } - else - { - // Now, this occurred how often? ... phew, just tell the user then... - if (!@is_writable($this->cache_dir)) - { - // We need to use die() here, because else we may encounter an infinite loop (the message handler calls $cache->unload()) - die($this->cache_dir . ' is NOT writable.'); - exit; - } - - die('Not able to open ' . $filename); - exit; - } - - $this->is_modified = false; - - // To reset the global vars - $this->vars = $this->var_expires = array(); - } - - /** - * Tidy local cache data. Also see {@link phpbb_acm_abstract::tidy() tidy()} - * @access protected - */ - protected function tidy_local() - { - $dir = @opendir($this->cache_dir); - - if (!$dir) - { - return; - } - - while (($entry = readdir($dir)) !== false) - { - if (strpos($entry, $this->cache_prefix . '_') !== 0 || strpos($entry, $this->cache_prefix . '_global') === 0) - { - continue; - } - - $expired = true; - @include($this->cache_dir . $entry); - - if ($expired) - { - $this->remove_file($this->cache_dir . $entry); - } - } - closedir($dir); - } - - /** - * Purge local cache data. Also see {@link phpbb_acm_abstract::purge() purge()} - * @access protected - */ - protected function purge_local() - { - $dir = @opendir($this->cache_dir); - - if (!$dir) - { - return; - } - - while (($entry = readdir($dir)) !== false) - { - if (strpos($entry, $this->cache_prefix . '_') !== 0 || strpos($entry, $this->cache_prefix . '_global') === 0) - { - continue; - } - - $this->remove_file($this->cache_dir . $entry); - } - closedir($dir); - } - - /** - * Get modified date for cache entry - * - * @param string $var_name The cache variable name - * @access public - */ - public function get_modified_date($var_name) - { - return @filemtime($this->cache_dir . $this->cache_prefix . '_' . $var_name . '.' . PHP_EXT); - } - - /** - * Removes/unlinks file - * - * @param string $filename The filename to remove - * @param bool $check If true the cache directory is checked for correct directory permissions. - * @access protected - */ - protected function remove_file($filename, $check = false) - { - if ($check && !@is_writable($this->cache_dir)) - { - // E_USER_ERROR - not using language entry - intended. - trigger_error('Unable to remove files within ' . $this->cache_dir . '. Please check directory permissions.', E_USER_ERROR); - } - - return @unlink($filename); - } -} - -/** -* Special implementation for cache type 'sql' -* @package acm -*/ -class phpbb_acm_file_sql extends phpbb_acm_file -{ - /** - * {@link phpbb_acm_abstract::destroy() destroy()} - */ - public function destroy($var_name) - { - if ($var_name[0] === '#') - { - $var_name = substr($var_name, 1); - $this->destroy_global($var_name); - } - - $table = (!is_array($var_name)) ? array($var_name) : $var_name; - $dir = @opendir($this->cache_dir); - - if (!$dir) - { - return; - } - - while (($entry = readdir($dir)) !== false) - { - if (strpos($entry, $this->cache_prefix . '_') !== 0) - { - continue; - } - - // The following method is more failproof than simply assuming the query is on line 3 (which it should be) - @include($this->cache_dir . $entry); - - if (empty($data)) - { - $this->remove_file($this->cache_dir . $entry); - continue; - } - - // Get the query - $data = $data['query']; - - $found = false; - foreach ($table as $check_table) - { - // Better catch partial table names than no table names. ;) - if (strpos($data, $check_table) !== false) - { - $found = true; - break; - } - } - - if ($found) - { - $this->remove_file($this->cache_dir . $entry); - } - } - closedir($dir); - - return; - } -} - -?>
\ No newline at end of file diff --git a/phpBB/includes/acm/acm_memcache.php b/phpBB/includes/acm/acm_memcache.php deleted file mode 100644 index 175d0663a0..0000000000 --- a/phpBB/includes/acm/acm_memcache.php +++ /dev/null @@ -1,392 +0,0 @@ -<?php -/** -* -* @package acm -* @version $Id$ -* @copyright (c) 2005 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -/** -* ACM File Based Caching -* @package acm -*/ -class acm -{ - var $vars = array(); - var $is_modified = false; - - var $sql_rowset = array(); - var $sql_row_pointer = array(); - var $cache_dir = ''; - - var $memcache; - - /** - * Set cache path - */ - function acm() - { - $this->cache_dir = $phpbb_root_path . 'cache/'; - $this->memcache = memcache_connect('localhost', 11211); - } - - /** - * Load global cache - */ - function load() - { - // grab the global cache - $this->vars = memcache_get($this->memcache, 'global'); - - if ($this->vars !== false) - { - return true; - } - - return false; - } - - /** - * Unload cache object - */ - function unload() - { - $this->save(); - unset($this->vars); - unset($this->sql_rowset); - unset($this->sql_row_pointer); - - $this->vars = array(); - $this->sql_rowset = array(); - $this->sql_row_pointer = array(); - } - - /** - * Save modified objects - */ - function save() - { - if (!$this->is_modified) - { - return; - } - - memcache_set($this->memcache, 'global', $this->vars, 0, 2592000); - - $this->is_modified = false; - } - - /** - * Tidy cache - */ - function tidy() - { - // cache has auto GC, no need to have any code here :) - - set_config('cache_last_gc', time(), true); - } - - /** - * Get saved cache object - */ - function get($var_name) - { - if ($var_name[0] == '_') - { - if (!$this->_exists($var_name)) - { - return false; - } - - return memcache_get($this->memcache, $var_name); - } - else - { - return ($this->_exists($var_name)) ? $this->vars[$var_name] : false; - } - } - - /** - * Put data into cache - */ - function put($var_name, $var, $ttl = 2592000) - { - if ($var_name[0] == '_') - { - memcache_set($this->memcache, $var_name, $var, 0, $ttl); - } - else - { - $this->vars[$var_name] = $var; - $this->is_modified = true; - } - } - - /** - * Purge cache data - */ - function purge() - { - // Purge all phpbb cache files - $dir = @opendir($this->cache_dir); - - if (!$dir) - { - return; - } - - while (($entry = readdir($dir)) !== false) - { - if (strpos($entry, 'sql_') !== 0 && strpos($entry, 'data_') !== 0 && strpos($entry, 'ctpl_') !== 0 && strpos($entry, 'tpl_') !== 0) - { - continue; - } - - $this->remove_file($this->cache_dir . $entry); - } - closedir($dir); - - memcache_flush($this->memcache); - - unset($this->vars); - unset($this->sql_rowset); - unset($this->sql_row_pointer); - - $this->vars = array(); - $this->sql_rowset = array(); - $this->sql_row_pointer = array(); - - $this->is_modified = false; - } - - - /** - * Destroy cache data - */ - function destroy($var_name, $table = '') - { - if ($var_name == 'sql' && !empty($table)) - { - if (!is_array($table)) - { - $table = array($table); - } - - foreach ($table as $table_name) - { - // gives us the md5s that we want - $temp = memcache_get($this->memcache, 'sql_' . $table_name); - - if ($temp === false) - { - continue; - } - - // delete each query ref - foreach ($temp as $md5_id => $void) - { - memcache_delete($this->memcache, 'sql_' . $md5_id); - } - - // delete the table ref - memcache_delete($this->memcache, 'sql_' . $table_name); - } - - return; - } - - if (!$this->_exists($var_name)) - { - return; - } - - if ($var_name[0] == '_') - { - memcache_delete($this->memcache, $var_name); - } - else if (isset($this->vars[$var_name])) - { - $this->is_modified = true; - unset($this->vars[$var_name]); - - // We save here to let the following cache hits succeed - $this->save(); - } - } - - /** - * Check if a given cache entry exist - */ - function _exists($var_name) - { - if ($var_name[0] == '_') - { - return true; - } - else - { - if (!sizeof($this->vars)) - { - $this->load(); - } - - return isset($this->vars[$var_name]); - } - } - - /** - * Load cached sql query - */ - function sql_load($query) - { - // Remove extra spaces and tabs - $query = preg_replace('/[\n\r\s\t]+/', ' ', $query); - $query_id = sizeof($this->sql_rowset); - - $temp = memcache_get($this->memcache, 'sql_' . md5($query)); - - if ($temp === false) - { - return false; - } - - $this->sql_rowset[$query_id] = $temp; - $this->sql_row_pointer[$query_id] = 0; - - return $query_id; - } - - /** - * Save sql query - */ - function sql_save($query, &$query_result, $ttl) - { - // Remove extra spaces and tabs - $query = preg_replace('/[\n\r\s\t]+/', ' ', $query); - - // determine which tables this query belongs to - preg_match('/FROM \\(?(\\w+(?: \\w+)?(?:, ?\\w+(?: \\w+)?)*)\\)?/', $query, $regs); - $tables = array_map('trim', explode(',', $regs[1])); - - foreach ($tables as $table_name) - { - if (($pos = strpos($table_name, ' ')) !== false) - { - $table_name = substr($table_name, 0, $pos); - } - - $temp = memcache_get($this->memcache, 'sql_' . $table_name); - if ($temp === false) - { - $temp = array(); - } - $temp[md5($query)] = true; - memcache_set($this->memcache, 'sql_' . $table_name, $temp, 0, $ttl); - } - - // store them in the right place - $query_id = sizeof($this->sql_rowset); - $this->sql_rowset[$query_id] = array(); - $this->sql_row_pointer[$query_id] = 0; - - while ($row = phpbb::$db->sql_fetchrow($query_result)) - { - $this->sql_rowset[$query_id][] = $row; - } - phpbb::$db->sql_freeresult($query_result); - - memcache_set($this->memcache, 'sql_' . md5($query), $this->sql_rowset[$query_id], 0, $ttl); - - $query_result = $query_id; - } - - /** - * Ceck if a given sql query exist in cache - */ - function sql_exists($query_id) - { - return isset($this->sql_rowset[$query_id]); - } - - /** - * Fetch row from cache (database) - */ - function sql_fetchrow($query_id) - { - if ($this->sql_row_pointer[$query_id] < sizeof($this->sql_rowset[$query_id])) - { - return $this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]++]; - } - - return false; - } - - /** - * Fetch a field from the current row of a cached database result (database) - */ - function sql_fetchfield($query_id, $field) - { - if ($this->sql_row_pointer[$query_id] < sizeof($this->sql_rowset[$query_id])) - { - return (isset($this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]][$field])) ? $this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]][$field] : false; - } - - return false; - } - - /** - * Seek a specific row in an a cached database result (database) - */ - function sql_rowseek($rownum, $query_id) - { - if ($rownum >= sizeof($this->sql_rowset[$query_id])) - { - return false; - } - - $this->sql_row_pointer[$query_id] = $rownum; - return true; - } - - /** - * Free memory used for a cached database result (database) - */ - function sql_freeresult($query_id) - { - if (!isset($this->sql_rowset[$query_id])) - { - return false; - } - - unset($this->sql_rowset[$query_id]); - unset($this->sql_row_pointer[$query_id]); - - return true; - } - - /** - * Removes/unlinks file - */ - function remove_file($filename, $check = false) - { - if ($check && !@is_writable($this->cache_dir)) - { - // E_USER_ERROR - not using language entry - intended. - trigger_error('Unable to remove files within ' . $this->cache_dir . '. Please check directory permissions.', E_USER_ERROR); - } - - return @unlink($filename); - } -} - -?>
\ No newline at end of file diff --git a/phpBB/includes/acm/acm_xcache.php b/phpBB/includes/acm/acm_xcache.php deleted file mode 100644 index e2bf21748a..0000000000 --- a/phpBB/includes/acm/acm_xcache.php +++ /dev/null @@ -1,336 +0,0 @@ -<?php -/** -* -* @package acm -* @version $Id$ -* @copyright (c) 2005 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License -* -*/ - -/** -* ACM XCache Based Caching -* @package acm -*/ -class acm -{ - var $vars = array(); - var $is_modified = false; - - var $sql_rowset = array(); - var $sql_row_pointer = array(); - var $cache_dir = ''; - - /** - * Set cache path - */ - function acm() - { - $this->cache_dir = $phpbb_root_path . 'cache/'; - } - - /** - * Load global cache - */ - function load() - { - // grab the global cache - if (xcache_isset('global')) - { - $this->vars = xcache_get('global'); - return true; - } - - return false; - } - - /** - * Unload cache object - */ - function unload() - { - $this->save(); - unset($this->vars); - unset($this->sql_rowset); - unset($this->sql_row_pointer); - } - - /** - * Save modified objects - */ - function save() - { - if (!$this->is_modified) - { - return; - } - - xcache_set('global', $this->vars, 31536000); - - $this->is_modified = false; - } - - /** - * Tidy cache - */ - function tidy() - { - // cache has auto GC, no need to have any code here :) - - set_config('cache_last_gc', time(), true); - } - - /** - * Get saved cache object - */ - function get($var_name) - { - if ($var_name[0] == '_') - { - return (xcache_isset($var_name)) ? xcache_get($var_name) : false; - } - else - { - if (!sizeof($this->vars)) - { - $this->load(); - } - return (isset($this->vars[$var_name])) ? $this->vars[$var_name] : false; - } - } - - /** - * Put data into cache - */ - function put($var_name, $var, $ttl = 31536000) - { - if ($var_name[0] == '_') - { - xcache_set($var_name, $var, $ttl); - } - else - { - $this->vars[$var_name] = $var; - $this->is_modified = true; - } - } - - /** - * Purge cache data - */ - function purge() - { - // Purge all phpbb cache files - $dir = @opendir($this->cache_dir); - - if (!$dir) - { - return; - } - - while (($entry = readdir($dir)) !== false) - { - if (strpos($entry, 'sql_') !== 0 && strpos($entry, 'data_') !== 0 && strpos($entry, 'ctpl_') !== 0 && strpos($entry, 'tpl_') !== 0) - { - continue; - } - - @unlink($this->cache_dir . $entry); - } - closedir($dir); - - $n = xcache_count(XC_TYPE_VAR); - for ($i = 0; $i < $n; $i++) - { - xcache_clear_cache(XC_TYPE_VAR, $i); - } - - unset($this->vars); - unset($this->sql_rowset); - unset($this->sql_row_pointer); - - $this->is_modified = false; - } - - /** - * Destroy cache data - */ - function destroy($var_name, $table = '') - { - if ($var_name == 'sql' && !empty($table)) - { - if (!is_array($table)) - { - $table = array($table); - } - - foreach ($table as $table_name) - { - // gives us the md5s that we want - if (!xcache_isset('sql_' . $table_name)) - { - continue; - } - $temp = xcache_get('sql_' . $table_name); - - // delete each query ref - foreach ($temp as $md5_id => $void) - { - xcache_unset('sql_' . $md5_id); - } - - // delete the table ref - xcache_unset('sql_' . $table_name); - } - - return; - } - - if ($var_name[0] == '_') - { - xcache_unset($var_name); - } - else if (isset($this->vars[$var_name])) - { - $this->is_modified = true; - unset($this->vars[$var_name]); - - // We save here to let the following cache hits succeed - $this->save(); - } - } - - /** - * Load cached sql query - */ - function sql_load($query) - { - // Remove extra spaces and tabs - $query = preg_replace('/[\n\r\s\t]+/', ' ', $query); - $query_id = sizeof($this->sql_rowset); - - if (!xcache_isset('sql_' . md5($query))) - { - return false; - } - - $this->sql_rowset[$query_id] = xcache_get('sql_' . md5($query)); - - $this->sql_row_pointer[$query_id] = 0; - - return $query_id; - } - - /** - * Save sql query - */ - function sql_save($query, &$query_result, $ttl) - { - // Remove extra spaces and tabs - $query = preg_replace('/[\n\r\s\t]+/', ' ', $query); - - // determine which tables this query belongs to - preg_match('/FROM \\(?(\\w+(?: \\w+)?(?:, ?\\w+(?: \\w+)?)*)\\)?/', $query, $regs); - $tables = array_map('trim', explode(',', $regs[1])); - - foreach ($tables as $table_name) - { - if (($pos = strpos($table_name, ' ')) !== false) - { - $table_name = substr($table_name, 0, $pos); - } - - if (xcache_isset('sql_' . $table_name)) - { - $temp = xcache_get('sql_' . $table_name); - } - else - { - $temp = array(); - } - $temp[md5($query)] = true; - xcache_set('sql_' . $table_name, $temp, $ttl); - } - - // store them in the right place - $query_id = sizeof($this->sql_rowset); - $this->sql_rowset[$query_id] = array(); - $this->sql_row_pointer[$query_id] = 0; - - while ($row = phpbb::$db->sql_fetchrow($query_result)) - { - $this->sql_rowset[$query_id][] = $row; - } - phpbb::$db->sql_freeresult($query_result); - - xcache_set('sql_' . md5($query), $this->sql_rowset[$query_id], $ttl); - - $query_result = $query_id; - } - - /** - * Ceck if a given sql query exist in cache - */ - function sql_exists($query_id) - { - return isset($this->sql_rowset[$query_id]); - } - - /** - * Fetch row from cache (database) - */ - function sql_fetchrow($query_id) - { - if ($this->sql_row_pointer[$query_id] < sizeof($this->sql_rowset[$query_id])) - { - return $this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]++]; - } - - return false; - } - - /** - * Fetch a field from the current row of a cached database result (database) - */ - function sql_fetchfield($query_id, $field) - { - if ($this->sql_row_pointer[$query_id] < sizeof($this->sql_rowset[$query_id])) - { - return (isset($this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]][$field])) ? $this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]][$field] : false; - } - - return false; - } - - /** - * Seek a specific row in an a cached database result (database) - */ - function sql_rowseek($rownum, $query_id) - { - if ($rownum >= sizeof($this->sql_rowset[$query_id])) - { - return false; - } - - $this->sql_row_pointer[$query_id] = $rownum; - return true; - } - - /** - * Free memory used for a cached database result (database) - */ - function sql_freeresult($query_id) - { - if (!isset($this->sql_rowset[$query_id])) - { - return false; - } - - unset($this->sql_rowset[$query_id]); - unset($this->sql_row_pointer[$query_id]); - - return true; - } -} - -?>
\ No newline at end of file diff --git a/phpBB/includes/acm/bootstrap.php b/phpBB/includes/acm/bootstrap.php deleted file mode 100644 index ea671706e5..0000000000 --- a/phpBB/includes/acm/bootstrap.php +++ /dev/null @@ -1,487 +0,0 @@ -<?php -/** -* -* @package acm -* @version $Id: acm_file.php 9233 2008-12-27 12:18:04Z acydburn $ -* @copyright (c) 2005 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -/** -* Base cache class. -* -* A prefix of # for $var_name indicates global data. -* -* @method mixed get($var_name) Get cached data. -* @method mixed put($var_name, $data, $ttl = 31536000) Put data into cache. -* @method mixed destroy($var_name) Destroy cached data. -* @method mixed exists($var_name) Check if cached data exists. -* -* @package acm -*/ -class phpbb_acm -{ - /** - * @var array required phpBB objects - */ - public $phpbb_required = array(); - - /** - * @var array Optional phpBB objects - */ - public $phpbb_optional = array(); - - /** - * @var array Currently registered core acm types. - */ - public $cache_types = array('data' => NULL, 'sql' => NULL); - - /** - * Constructor - * @access public - */ - public function __construct() { } - - /** - * Magic method for calling type-specific functions. - * Functions directly supported are: get(), put(), exists(), destroy() - * - * The type is added to the methods name, for getting sql data just use get_sql() for example. - * - * see {@link phpbb_acm_abstract phpbb_acm_abstract} for more information - * - * @access public - */ - public function __call($method, $arguments) - { - $supported_internal_functions = array('get', 'put', 'exists', 'destroy'); - $internal_method = explode('_', $method, 2); - - // Get cache type and method - if (in_array($internal_method[0], $supported_internal_functions)) - { - $cache_type = (empty($internal_method[1])) ? 'data' : $internal_method[1]; - $method = $internal_method[0]; - } - else - { - $cache_type = $arguments[0]; - array_shift($arguments); - } - - // Check if the cache type is initialized and exist - if (!$this->type_exists($cache_type)) - { - return false; - } - - // $this->cache_types[$cache_type]->$method($arguments); - return call_user_func_array(array($this->cache_types[$cache_type], $method), $arguments); - } - - /** - * Tidy cache. This removes all expired cache data. - * @access public - */ - public function tidy() - { - foreach ($this->cache_types as $cache_type => $object) - { - if ($object === NULL) - { - continue; - } - - $this->cache_types[$cache_type]->tidy(); - } - } - - /** - * Purge cache. This removes all cache data, not only the expired one. - * @access public - */ - public function purge() - { - foreach ($this->cache_types as $cache_type => $object) - { - if ($object === NULL) - { - continue; - } - - $this->cache_types[$cache_type]->purge(); - } - } - - /** - * Load cache data. This is usually only used internally. - * @access public - */ - public function load() - { - foreach ($this->cache_types as $cache_type => $object) - { - if ($object === NULL) - { - continue; - } - - $this->cache_types[$cache_type]->load(); - } - } - - /** - * Unload everything from cache and make sure non-stored cache items are properly saved. - * @access public - */ - public function unload() - { - foreach ($this->cache_types as $cache_type => $object) - { - if ($object === NULL) - { - continue; - } - - $this->cache_types[$cache_type]->unload(); - } - } - - /** - * Register a custom cache type/class. - * - * @param string $cache_type The cache type to register/set - * @param string $cache_append String to append to the cached data as identifier (if the coder has different types to distinct from) - * @param string $cache_object The exact name of the cache class to load. - * The filename must be: <code>includes/acm/acm_{$cache_object}.php</code> - * The class definition must be: <code>class phpbb_acm_{$cache_object} extends phpbb_acm_abstract</code> - * Additionally it is possible to define classes for every cache type... - * for example: <code>phpbb_acm_{$cache_object}_{$cache_type} extends phpbb_acm_{$cache_object}</code> - * - * @return bool Returns true on success, else false. - * @access public - */ - public function register($cache_type, $cache_append = false, $cache_object = false) - { - $cache_object = ($cache_object === false) ? basename(phpbb::$base_config['acm_type']) : basename($cache_object); - - // We need to init every cache type... - if (!isset($this->cache_types[$cache_type])) - { - $this->cache_types[$cache_type] = NULL; - } - - // Unregister if already registered - if ($this->cache_types[$cache_type] !== NULL) - { - $this->cache_types[$cache_type] = NULL; - } - - if ($this->cache_types[$cache_type] === NULL) - { - $class_name = 'phpbb_acm_' . $cache_object; - - if (!class_exists($class_name)) - { - if (!file_exists(PHPBB_ROOT_PATH . 'includes/acm/acm_' . $cache_object . '.' . PHP_EXT)) - { - return false; - } - - require_once PHPBB_ROOT_PATH . 'includes/acm/acm_' . $cache_object . '.' . PHP_EXT; - } - - $class_name = (class_exists('phpbb_acm_' . $cache_object . '_' . $cache_type)) ? 'phpbb_acm_' . $cache_object . '_' . $cache_type : 'phpbb_acm_' . $cache_object; - - // Set cache prefix, for example ctpl_prosilver - $cache_prefix = ($cache_append === false) ? $cache_type : $cache_type . '_' . $cache_append; - - $this->cache_types[$cache_type] = new $class_name($cache_prefix); - - if (!$this->supported($cache_type)) - { - $this->cache_types[$cache_type] = NULL; - return false; - } - } - - return true; - } - - /** - * Check if a specified cache type is supported with the ACM class - * - * @param string $cache_type The cache type to check. - * - * @return bool True if the type is supported, else false. - * @access public - */ - public function supported($cache_type) - { - if (!$this->type_exists($cache_type)) - { - return false; - } - - return !empty($this->cache_types[$cache_type]->supported[$cache_type]) || $this->cache_types[$cache_type]->supported === true; - } - - /** - * Check if the cache type exists. Sometimes some types do not exist if the relevant files are not there or do not support the given cache type. - * - * @param string $cache_type The cache type to check. - * - * @return bool True if the type exist, else false. - * @access private - */ - private function type_exists($cache_type) - { - if (!isset($this->cache_types[$cache_type]) || $this->cache_types[$cache_type] === NULL) - { - $this->register($cache_type); - } - - return $this->cache_types[$cache_type] !== NULL; - } -} - - -/** -* The abstract class all ACM plugins must extend. -* @package acm -*/ -abstract class phpbb_acm_abstract -{ - /** - * @var string The current cache prefix - */ - public $cache_prefix = ''; - - /** - * @var array Cached global data - */ - protected $vars = array(); - - /** - * @var array Expire information for cached global data - */ - protected $var_expires = array(); - - /** - * @var bool Is true if global data is modified - */ - protected $is_modified = false; - - /** - * Get cached data - * - * @param string $var_name Variable name. Global variable name is prefixed with #. - * - * @return mixed Returns false if there is no data available, else returns the data - * @access public - */ - abstract public function get($var_name); - - /** - * Put data into cache - * - * @param string $var_name Variable name. Global variable name is prefixed with #. - * @param mixed $data Data to be put into cache. - * @param int $ttl Cache lifetime in seconds. - * - * @return mixed Returns $data - * @access public - */ - abstract public function put($var_name, $data, $ttl = 31536000); - - /** - * Destroy cached data. - * - * @param string $var_name Variable name. Global variable name is prefixed with #. - * - * @return mixed Returns false if the cached data does not exist - * @access public - */ - abstract public function destroy($var_name); - - /** - * Check if cached data exists. - * - * @param string $var_name Variable name. Global variable name is prefixed with #. - * - * @return bool True if it exists - * @access public - */ - abstract public function exists($var_name); - - /** - * Load cache data. This is usually only used internally. - * @access public - */ - abstract public function load(); - - /** - * Unload everything from cache and make sure non-stored cache items are properly saved. - * @access public - */ - abstract public function unload(); - - /** - * Tidy cache. This removes all expired cache data. - * @access public - */ - public function tidy() - { - $this->tidy_local(); - $this->tidy_global(); - - set_config('cache_last_gc', time(), true); - } - - /** - * Purge cache. This removes all cache data, not only the expired one. - * @access public - */ - public function purge() - { - $this->purge_local(); - $this->purge_global(); - } - - /** - * Tidy only local cache data - * @access protected - */ - abstract protected function tidy_local(); - - /** - * Purge only local cache data - * @access protected - */ - abstract protected function purge_local(); - - /** - * Get global cache data. See {@link get() get()}. - * @access protected - */ - protected function get_global($var_name) - { - // Check if we have all variables - if (!sizeof($this->vars)) - { - $this->load(); - } - - if (!isset($this->var_expires[$var_name])) - { - return false; - } - - // If expired... we remove this entry now... - if (time() > $this->var_expires[$var_name]) - { - $this->destroy('#' . $var_name); - return false; - } - - if (isset($this->vars[$var_name])) - { - return $this->vars[$var_name]; - } - - return false; - } - - /** - * Put data into global cache. See {@link put() put()}. - * @access protected - */ - protected function put_global($var_name, $data, $ttl = 31536000) - { - $this->vars[$var_name] = $data; - $this->var_expires[$var_name] = time() + $ttl; - $this->is_modified = true; - - return $data; - } - - /** - * Check if global data exists. See {@link exists() exists()}. - * @access protected - */ - protected function exists_global($var_name) - { - return !empty($this->vars[$var_name]) && time() <= $this->var_expires[$var_name]; - } - - /** - * Destroy global cache data. See {@link destroy() destroy()}. - * @access protected - */ - protected function destroy_global($var_name) - { - $this->is_modified = true; - - unset($this->vars[$var_name]); - unset($this->var_expires[$var_name]); - - // We save here to let the following cache hits succeed - $this->unload(); - } - - /** - * Tidy global cache data. See {@link tidy() tidy()}. - * @access protected - */ - protected function tidy_global() - { - // Now tidy global settings - if (!sizeof($this->vars)) - { - $this->load(); - } - - foreach ($this->var_expires as $var_name => $expires) - { - if (time() > $expires) - { - // We only unset, then save later - unset($this->vars[$var_name]); - unset($this->var_expires[$var_name]); - } - } - - $this->is_modified = true; - $this->unload(); - } - - /** - * Purge global cache data. See {@link purge() purge()}. - * @access protected - */ - protected function purge_global() - { - // Now purge global settings - unset($this->vars); - unset($this->var_expires); - - $this->vars = array(); - $this->var_expires = array(); - - $this->is_modified = true; - $this->unload(); - } -} - - - -?>
\ No newline at end of file |