72 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
	/**
 | 
						|
	 *  cache api
 | 
						|
	 */
 | 
						|
 | 
						|
	class Cache {
 | 
						|
		public static function get($key) {
 | 
						|
 | 
						|
			$r = q("SELECT `v` FROM `cache` WHERE `k`='%s' limit 1",
 | 
						|
				dbesc($key)
 | 
						|
			);
 | 
						|
 | 
						|
			if (count($r))
 | 
						|
				return $r[0]['v'];
 | 
						|
 | 
						|
			return null;
 | 
						|
		}
 | 
						|
 | 
						|
		public static function set($key,$value, $duration = CACHE_MONTH) {
 | 
						|
 | 
						|
			q("REPLACE INTO `cache` (`k`,`v`,`expire_mode`,`updated`) VALUES ('%s','%s',%d,'%s')",
 | 
						|
					dbesc($key),
 | 
						|
					dbesc($value),
 | 
						|
					intval($duration),
 | 
						|
					dbesc(datetime_convert()));
 | 
						|
 | 
						|
		}
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
 *
 | 
						|
 * Leaving this legacy code temporaily to see how REPLACE fares
 | 
						|
 * as opposed to non-atomic checks when faced with fast moving key duplication.
 | 
						|
 * As a MySQL extension it isn't portable, but we're not yet very portable.
 | 
						|
 */
 | 
						|
 | 
						|
/*
 | 
						|
 *			$r = q("SELECT * FROM `cache` WHERE `k`='%s' limit 1",
 | 
						|
 *				dbesc($key)
 | 
						|
 *			);
 | 
						|
 *			if(count($r)) {
 | 
						|
 *				q("UPDATE `cache` SET `v` = '%s', `updated = '%s' WHERE `k` = '%s'",
 | 
						|
 *					dbesc($value),
 | 
						|
 *					dbesc(datetime_convert()),
 | 
						|
 *					dbesc($key));
 | 
						|
 *			}
 | 
						|
 *			else {
 | 
						|
 *				q("INSERT INTO `cache` (`k`,`v`,`updated`) VALUES ('%s','%s','%s')",
 | 
						|
 *					dbesc($key),
 | 
						|
 *					dbesc($value),
 | 
						|
 *					dbesc(datetime_convert()));
 | 
						|
 *			}
 | 
						|
 *		}
 | 
						|
 */
 | 
						|
 | 
						|
 | 
						|
		public static function clear(){
 | 
						|
			q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d",
 | 
						|
				dbesc(datetime_convert('UTC','UTC',"now - 30 days")), intval(CACHE_MONTH));
 | 
						|
 | 
						|
			q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d",
 | 
						|
				dbesc(datetime_convert('UTC','UTC',"now - 7 days")), intval(CACHE_WEEK));
 | 
						|
 | 
						|
			q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d",
 | 
						|
				dbesc(datetime_convert('UTC','UTC',"now - 1 days")), intval(CACHE_DAY));
 | 
						|
 | 
						|
			q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d",
 | 
						|
				dbesc(datetime_convert('UTC','UTC',"now - 1 hours")), intval(CACHE_HOUR));
 | 
						|
		}
 | 
						|
 | 
						|
	}
 | 
						|
 |