X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FBAO%2FCache.php;h=dab56685d80cc2f0dcce0361c038b8208643c2e0;hb=225584c91fea180fc9e06c9171f08b7f222ebac1;hp=d3e5dfd8b2e090a890ef1afe5b573972e5793125;hpb=29d98e1314e345f1b9044f5359c2d0a67f380d21;p=civicrm-core.git diff --git a/CRM/Core/BAO/Cache.php b/CRM/Core/BAO/Cache.php index d3e5dfd8b2..dab56685d8 100644 --- a/CRM/Core/BAO/Cache.php +++ b/CRM/Core/BAO/Cache.php @@ -3,7 +3,7 @@ +--------------------------------------------------------------------+ | CiviCRM version 4.6 | +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC (c) 2004-2014 | + | Copyright CiviCRM LLC (c) 2004-2015 | +--------------------------------------------------------------------+ | This file is a part of CiviCRM. | | | @@ -23,14 +23,6 @@ | GNU Affero General Public License or the licensing of CiviCRM, | | see the CiviCRM license FAQ at http://civicrm.org/licensing | +--------------------------------------------------------------------+ -*/ - -/** - * - * @package CRM - * @copyright CiviCRM LLC (c) 2004-2014 - * $Id$ - * */ /** @@ -52,7 +44,7 @@ class CRM_Core_BAO_Cache extends CRM_Core_DAO_Cache { static $_cache = NULL; /** - * Retrieve an item from the DB cache + * Retrieve an item from the DB cache. * * @param string $group * (required) The group name of the item. @@ -93,7 +85,7 @@ class CRM_Core_BAO_Cache extends CRM_Core_DAO_Cache { } /** - * Retrieve all items in a group + * Retrieve all items in a group. * * @param string $group * (required) The group name of the item. @@ -119,7 +111,7 @@ class CRM_Core_BAO_Cache extends CRM_Core_DAO_Cache { $dao->component_id = $componentID; $dao->find(); - $result = array(); // array($path => $data) + $result = array(); while ($dao->fetch()) { $result[$dao->path] = unserialize($dao->data); } @@ -134,7 +126,7 @@ class CRM_Core_BAO_Cache extends CRM_Core_DAO_Cache { } /** - * Store an item in the DB cache + * Store an item in the DB cache. * * @param object $data * (required) A reference to the data that will be serialized and stored. @@ -144,8 +136,6 @@ class CRM_Core_BAO_Cache extends CRM_Core_DAO_Cache { * (required) The path under which this item is stored. * @param int $componentID * The optional component ID (so componenets can share the same name space). - * - * @return void */ public static function setItem(&$data, $group, $path, $componentID = NULL) { if (self::$_cache === NULL) { @@ -190,16 +180,13 @@ class CRM_Core_BAO_Cache extends CRM_Core_DAO_Cache { } /** - * Delete all the cache elements that belong to a group OR - * delete the entire cache if group is not specified + * Delete all the cache elements that belong to a group OR delete the entire cache if group is not specified. * * @param string $group * The group name of the entries to be deleted. * @param string $path * Path of the item that needs to be deleted. - * @param bool|\booleab $clearAll clear all caches - * - * @return void + * @param bool $clearAll clear all caches */ public static function deleteGroup($group = NULL, $path = NULL, $clearAll = TRUE) { $dao = new CRM_Core_DAO_Cache(); @@ -231,6 +218,7 @@ class CRM_Core_BAO_Cache extends CRM_Core_DAO_Cache { /** * This function takes entries from the session array and stores it in the cache. + * * It also deletes the entries from the $_SESSION object (for a smaller session size) * * @param array $names @@ -239,8 +227,6 @@ class CRM_Core_BAO_Cache extends CRM_Core_DAO_Cache { * (in the case of profile) * @param bool $resetSession * Should session state be reset on completion of DB store?. - * - * @return void */ public static function storeSessionToCache($names, $resetSession = TRUE) { foreach ($names as $key => $sessionName) { @@ -272,16 +258,18 @@ class CRM_Core_BAO_Cache extends CRM_Core_DAO_Cache { } /* Retrieve the session values from the cache and populate the $_SESSION array - * - * @param array $names - * Array of session values that should be persisted. - * This is either a form name + qfKey or just a form name - * (in the case of profile) - * - * @return void - */ + * + * @param array $names + * Array of session values that should be persisted. + * This is either a form name + qfKey or just a form name + * (in the case of profile) + * + * @return void + */ /** + * Restore session from cache. + * * @param string $names */ public static function restoreSessionFromCache($names) { @@ -306,14 +294,14 @@ class CRM_Core_BAO_Cache extends CRM_Core_DAO_Cache { } /** - * Do periodic cleanup of the CiviCRM session table. Also delete all session cache entries - * which are a couple of days old. This keeps the session cache to a manageable size + * Do periodic cleanup of the CiviCRM session table. + * + * Also delete all session cache entries which are a couple of days old. + * This keeps the session cache to a manageable size * * @param bool $session * @param bool $table * @param bool $prevNext - * - * @return void */ public static function cleanup($session = FALSE, $table = FALSE, $prevNext = FALSE) { // clean up the session cache every $cacheCleanUpNumber probabilistically @@ -337,30 +325,7 @@ class CRM_Core_BAO_Cache extends CRM_Core_DAO_Cache { } if ($table) { - // also delete all the action temp tables - // that were created the same interval ago - $dao = new CRM_Core_DAO(); - $query = " -SELECT TABLE_NAME as tableName -FROM INFORMATION_SCHEMA.TABLES -WHERE TABLE_SCHEMA = %1 -AND ( TABLE_NAME LIKE 'civicrm_task_action_temp_%' - OR TABLE_NAME LIKE 'civicrm_export_temp_%' - OR TABLE_NAME LIKE 'civicrm_import_job_%' ) -AND CREATE_TIME < date_sub( NOW( ), INTERVAL $timeIntervalDays day ) -"; - - $params = array(1 => array($dao->database(), 'String')); - $tableDAO = CRM_Core_DAO::executeQuery($query, $params); - $tables = array(); - while ($tableDAO->fetch()) { - $tables[] = $tableDAO->tableName; - } - if (!empty($tables)) { - $table = implode(',', $tables); - // drop leftover temporary tables - CRM_Core_DAO::executeQuery("DROP TABLE $table"); - } + CRM_Core_Config::clearTempTables($timeIntervalDays . ' day'); } if ($session) { @@ -372,11 +337,14 @@ AND CREATE_TIME < date_sub( NOW( ), INTERVAL $timeIntervalDays day ) ); $params = array( - 1 => array(date('Y-m-d H:i:s', time() - $timeIntervalMins * 60), 'String'), + 1 => array( + date('Y-m-d H:i:s', time() - $timeIntervalMins * 60), + 'String', + ), ); foreach ($transactionPages as $trPage) { $params[] = array("%${trPage}%", 'String'); - $where[] = 'path LIKE %' . sizeof($params); + $where[] = 'path LIKE %' . count($params); } $sql = " @@ -394,4 +362,5 @@ AND created_date < date_sub( NOW( ), INTERVAL $timeIntervalDays DAY ) CRM_Core_DAO::executeQuery($sql); } } + }