You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.5 KiB
75 lines
1.5 KiB
2 years ago
|
<?php
|
||
|
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
namespace PhpMyAdmin;
|
||
|
|
||
|
use function array_key_exists;
|
||
|
|
||
|
/**
|
||
|
* Cache values
|
||
|
*/
|
||
|
class Cache
|
||
|
{
|
||
|
/** @var array<string,mixed> */
|
||
|
private static $cacheData = [];
|
||
|
|
||
|
/**
|
||
|
* Store a value
|
||
|
*
|
||
|
* @param string $cacheKey The key to use
|
||
|
* @param mixed $value The value to cache
|
||
|
*/
|
||
|
public static function set(string $cacheKey, $value): bool
|
||
|
{
|
||
|
self::$cacheData[$cacheKey] = $value;
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Does the cache have a value stored for the key
|
||
|
*
|
||
|
* @param string $cacheKey The key to use
|
||
|
*/
|
||
|
public static function has(string $cacheKey): bool
|
||
|
{
|
||
|
return array_key_exists($cacheKey, self::$cacheData);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get back a cached value
|
||
|
*
|
||
|
* @param string $cacheKey The key to use
|
||
|
* @param mixed $defaultValue The default value in case it does not exist
|
||
|
*
|
||
|
* @return mixed The cached value
|
||
|
*/
|
||
|
public static function get(string $cacheKey, $defaultValue = null)
|
||
|
{
|
||
|
return self::$cacheData[$cacheKey] ?? $defaultValue;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Remove a cached value
|
||
|
*
|
||
|
* @param string $cacheKey The key to use to remove the value
|
||
|
*/
|
||
|
public static function remove(string $cacheKey): bool
|
||
|
{
|
||
|
unset(self::$cacheData[$cacheKey]);
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Purge all cached values
|
||
|
*/
|
||
|
public static function purge(): bool
|
||
|
{
|
||
|
self::$cacheData = [];
|
||
|
|
||
|
return self::$cacheData === [];
|
||
|
}
|
||
|
}
|