mirror of
https://framagit.org/hubzilla/core.git
synced 2026-06-21 00:52:33 -04:00
55 lines
1.1 KiB
PHP
55 lines
1.1 KiB
PHP
<?php /** @file */
|
|
|
|
namespace Zotlabs\Lib;
|
|
|
|
/**
|
|
* cache api
|
|
*/
|
|
|
|
class Cache {
|
|
|
|
/**
|
|
* @brief Returns cached content
|
|
*
|
|
* @param string $key
|
|
* @param string $age in SQL format, default is '30 DAY'
|
|
* @return string
|
|
*/
|
|
|
|
public static function get($key, $age = '') {
|
|
|
|
$hash = hash('whirlpool',$key);
|
|
|
|
$r = q("SELECT v FROM cache WHERE k = '%s' AND updated > %s - INTERVAL %s LIMIT 1",
|
|
dbesc($hash),
|
|
db_utcnow(),
|
|
db_quoteinterval(($age ? $age : get_config('system','object_cache_days', '30') . ' DAY'))
|
|
);
|
|
|
|
if ($r)
|
|
return $r[0]['v'];
|
|
return null;
|
|
}
|
|
|
|
public static function set($key,$value) {
|
|
|
|
$hash = hash('whirlpool',$key);
|
|
|
|
$r = q("SELECT * FROM cache WHERE k = '%s' limit 1",
|
|
dbesc($hash)
|
|
);
|
|
if($r) {
|
|
q("UPDATE cache SET v = '%s', updated = '%s' WHERE k = '%s'",
|
|
dbesc($value),
|
|
dbesc(datetime_convert()),
|
|
dbesc($hash));
|
|
}
|
|
else {
|
|
q("INSERT INTO cache ( k, v, updated) VALUES ('%s','%s','%s')",
|
|
dbesc($hash),
|
|
dbesc($value),
|
|
dbesc(datetime_convert()));
|
|
}
|
|
}
|
|
}
|