namespace Friendica\Core;
use Friendica\Core\Config;
-use Friendica\Core\PConfig;
use Friendica\Database\DBM;
+use Friendica\Util\DateTimeFormat;
use dba;
+use Memcache;
require_once 'include/dba.php';
class Cache
{
/**
- * @brief Check for memcache and open a connection if configured
+ * @brief Check for Memcache and open a connection if configured
*
- * @return object|boolean The memcache object - or "false" if not successful
+ * @return Memcache|boolean The Memcache object - or "false" if not successful
*/
public static function memcache()
{
- if (!function_exists('memcache_connect')) {
+ if (!class_exists('Memcache', false)) {
return false;
}
$memcache_host = Config::get('system', 'memcache_host', '127.0.0.1');
$memcache_port = Config::get('system', 'memcache_port', 11211);
- $memcache = new \Memcache;
+ $memcache = new Memcache();
if (!$memcache->connect($memcache_host, $memcache_port)) {
return false;
$seconds = 300;
break;
case CACHE_MINUTE:
+ default:
$seconds = 60;
break;
}
// Frequently clear cache
self::clear();
- $r = dba::select('cache', array('v'), array('k' => $key), array('limit' => 1));
+ $cache = dba::selectFirst('cache', ['v'], ['k' => $key]);
- if (DBM::is_result($r)) {
- $cached = $r['v'];
+ if (DBM::is_result($cache)) {
+ $cached = $cache['v'];
$value = @unserialize($cached);
// Only return a value if the serialized value is valid.
$memcache->set(get_app()->get_hostname().":".$key, serialize($value), MEMCACHE_COMPRESSED, self::duration($duration));
return;
}
- $fields = array('v' => serialize($value), 'expire_mode' => $duration, 'updated' => datetime_convert());
- $condition = array('k' => $key);
+ $fields = ['v' => serialize($value), 'expire_mode' => $duration, 'updated' => DateTimeFormat::utcNow()];
+ $condition = ['k' => $key];
dba::update('cache', $fields, $condition, true);
}
// Clear long lasting cache entries only once a day
if (Config::get("system", "cache_cleared_day") < time() - self::duration(CACHE_DAY)) {
if ($max_level == CACHE_MONTH) {
- $condition = array("`updated` < ? AND `expire_mode` = ?",
- datetime_convert('UTC', 'UTC', "now - 30 days"),
- CACHE_MONTH);
+ $condition = ["`updated` < ? AND `expire_mode` = ?",
+ DateTimeFormat::utc("now - 30 days"),
+ CACHE_MONTH];
dba::delete('cache', $condition);
}
if ($max_level <= CACHE_WEEK) {
- $condition = array("`updated` < ? AND `expire_mode` = ?",
- datetime_convert('UTC', 'UTC', "now - 7 days"),
- CACHE_WEEK);
+ $condition = ["`updated` < ? AND `expire_mode` = ?",
+ DateTimeFormat::utc("now - 7 days"),
+ CACHE_WEEK];
dba::delete('cache', $condition);
}
if ($max_level <= CACHE_DAY) {
- $condition = array("`updated` < ? AND `expire_mode` = ?",
- datetime_convert('UTC', 'UTC', "now - 1 days"),
- CACHE_DAY);
+ $condition = ["`updated` < ? AND `expire_mode` = ?",
+ DateTimeFormat::utc("now - 1 days"),
+ CACHE_DAY];
dba::delete('cache', $condition);
}
Config::set("system", "cache_cleared_day", time());
}
if (($max_level <= CACHE_HOUR) && (Config::get("system", "cache_cleared_hour")) < time() - self::duration(CACHE_HOUR)) {
- $condition = array("`updated` < ? AND `expire_mode` = ?",
- datetime_convert('UTC', 'UTC', "now - 1 hours"),
- CACHE_HOUR);
+ $condition = ["`updated` < ? AND `expire_mode` = ?",
+ DateTimeFormat::utc("now - 1 hours"),
+ CACHE_HOUR];
dba::delete('cache', $condition);
Config::set("system", "cache_cleared_hour", time());
}
if (($max_level <= CACHE_HALF_HOUR) && (Config::get("system", "cache_cleared_half_hour")) < time() - self::duration(CACHE_HALF_HOUR)) {
- $condition = array("`updated` < ? AND `expire_mode` = ?",
- datetime_convert('UTC', 'UTC', "now - 30 minutes"),
- CACHE_HALF_HOUR);
+ $condition = ["`updated` < ? AND `expire_mode` = ?",
+ DateTimeFormat::utc("now - 30 minutes"),
+ CACHE_HALF_HOUR];
dba::delete('cache', $condition);
Config::set("system", "cache_cleared_half_hour", time());
}
if (($max_level <= CACHE_QUARTER_HOUR) && (Config::get("system", "cache_cleared_quarter_hour")) < time() - self::duration(CACHE_QUARTER_HOUR)) {
- $condition = array("`updated` < ? AND `expire_mode` = ?",
- datetime_convert('UTC', 'UTC', "now - 15 minutes"),
- CACHE_QUARTER_HOUR);
+ $condition = ["`updated` < ? AND `expire_mode` = ?",
+ DateTimeFormat::utc("now - 15 minutes"),
+ CACHE_QUARTER_HOUR];
dba::delete('cache', $condition);
Config::set("system", "cache_cleared_quarter_hour", time());
}
if (($max_level <= CACHE_FIVE_MINUTES) && (Config::get("system", "cache_cleared_five_minute")) < time() - self::duration(CACHE_FIVE_MINUTES)) {
- $condition = array("`updated` < ? AND `expire_mode` = ?",
- datetime_convert('UTC', 'UTC', "now - 5 minutes"),
- CACHE_FIVE_MINUTES);
+ $condition = ["`updated` < ? AND `expire_mode` = ?",
+ DateTimeFormat::utc("now - 5 minutes"),
+ CACHE_FIVE_MINUTES];
dba::delete('cache', $condition);
Config::set("system", "cache_cleared_five_minute", time());
}
if (($max_level <= CACHE_MINUTE) && (Config::get("system", "cache_cleared_minute")) < time() - self::duration(CACHE_MINUTE)) {
- $condition = array("`updated` < ? AND `expire_mode` = ?",
- datetime_convert('UTC', 'UTC', "now - 1 minutes"),
- CACHE_MINUTE);
+ $condition = ["`updated` < ? AND `expire_mode` = ?",
+ DateTimeFormat::utc("now - 1 minutes"),
+ CACHE_MINUTE];
dba::delete('cache', $condition);
Config::set("system", "cache_cleared_minute", time());