WowPress-Tailwind/theme/wowpress/Database/Cache.php

46 lines
1.0 KiB
PHP
Raw Permalink Normal View History

2024-04-15 16:00:49 +02:00
<?php
namespace WoWPress\Database;
use Wenprise\Eloquent\Model;
class Cache extends Model{
protected $table = "wowpress_cache";
public $timestamps = false;
protected $primaryKey = 'ID';
protected $guarded = [ 'ID' ];
public static function buildKey(array $key_parts){
return md5(implode(";",$key_parts));
}
public function isExpired($expiration){
return ((time() - $this->expiration) / 60) >= $expiration;
}
public function getValueAttribute(){
$value = base64_decode($this->p_value);
$value = preg_replace('/[[:cntrl:]]/', '', $value);
$value = json_decode($value,true);
return $value;
}
public static function upsert($p_key,$p_value){
if(!\json_validate($p_value)){
$p_value = json_encode($p_value);
}
$p_value = base64_encode($p_value);
$c = new Cache();
$c->p_key = $p_key;
$c->p_value = $p_value;
$c->expiration = time();
$c->save();
return $c;
}
}