Refactored RuntimeCache.php
This commit is contained in:
parent
021d5ec750
commit
8549cff119
2 changed files with 10 additions and 72 deletions
|
@ -85,7 +85,6 @@
|
|||
|
||||
try
|
||||
{
|
||||
RuntimeCache::clearCache();
|
||||
Functions::finalizePermissions();
|
||||
}
|
||||
catch (Exception $e)
|
||||
|
|
|
@ -36,21 +36,14 @@
|
|||
*/
|
||||
private static $cache = [];
|
||||
|
||||
/**
|
||||
* An array of files to delete when the cache is cleared
|
||||
*
|
||||
* @var string[]
|
||||
*/
|
||||
private static $temporary_files = [];
|
||||
|
||||
/**
|
||||
* Sets a value, returns the value
|
||||
*
|
||||
* @param $key
|
||||
* @param string $key
|
||||
* @param $value
|
||||
* @return mixed
|
||||
*/
|
||||
public static function set($key, $value): mixed
|
||||
public static function set(string $key, mixed $value): mixed
|
||||
{
|
||||
self::$cache[$key] = $value;
|
||||
return $value;
|
||||
|
@ -59,76 +52,22 @@
|
|||
/**
|
||||
* Gets an existing value, null if it doesn't exist
|
||||
*
|
||||
* @param $key
|
||||
* @param string $key
|
||||
* @return mixed|null
|
||||
*/
|
||||
public static function get($key): mixed
|
||||
public static function get(string $key): mixed
|
||||
{
|
||||
if(isset(self::$cache[$key]))
|
||||
return self::$cache[$key];
|
||||
|
||||
return null;
|
||||
return self::$cache[$key] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a file as temporary, it will be deleted when the cache is cleared
|
||||
* Returns True if the key exists
|
||||
*
|
||||
* @param string $path
|
||||
* @return void
|
||||
* @param string $key
|
||||
* @return bool
|
||||
*/
|
||||
public static function setFileAsTemporary(string $path): void
|
||||
public static function exists(string $key): bool
|
||||
{
|
||||
Console::outDebug($path);
|
||||
if(!in_array($path, self::$temporary_files))
|
||||
self::$temporary_files[] = $path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a file from the temporary files list
|
||||
*
|
||||
* @param string $path
|
||||
* @return void
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
public static function removeFileAsTemporary(string $path): void
|
||||
{
|
||||
Console::outDebug($path);
|
||||
if(in_array($path, self::$temporary_files))
|
||||
unset(self::$temporary_files[array_search($path, self::$temporary_files)]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $clear_memory
|
||||
* @param bool $clear_files
|
||||
* @return void
|
||||
*/
|
||||
public static function clearCache(bool $clear_memory=true, bool $clear_files=true): void
|
||||
{
|
||||
Console::outDebug('clearing cache');
|
||||
|
||||
if($clear_memory)
|
||||
{
|
||||
Console::outDebug(sprintf('clearing memory cache (%d entries)', count(self::$cache)));
|
||||
self::$cache = [];
|
||||
}
|
||||
|
||||
if($clear_files)
|
||||
{
|
||||
Console::outDebug('clearing temporary files');
|
||||
$filesystem = new Filesystem();
|
||||
foreach(self::$temporary_files as $file)
|
||||
{
|
||||
try
|
||||
{
|
||||
$filesystem->remove($file);
|
||||
Console::outDebug(sprintf('deleted temporary file \'%s\'', $file));
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
Console::outDebug(sprintf('failed to delete temporary file \'%s\', %s', $file, $e->getMessage()));
|
||||
unset($e);
|
||||
}
|
||||
}
|
||||
}
|
||||
return isset(self::$cache[$key]);
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue