26 lines
677 B
PHP
26 lines
677 B
PHP
<?php
|
|
namespace App\Cache;
|
|
|
|
use TikScraper\Interfaces\CacheInterface;
|
|
|
|
class ApcuCache implements CacheInterface {
|
|
function __construct() {
|
|
if (!(extension_loaded('apcu') && apcu_enabled())) {
|
|
throw new \Exception('APCu not enabled');
|
|
}
|
|
}
|
|
|
|
public function get(string $cache_key): ?object {
|
|
$data = apcu_fetch($cache_key);
|
|
return $data !== false ? json_decode($data) : null;
|
|
}
|
|
|
|
public function exists(string $cache_key): bool {
|
|
return apcu_exists($cache_key);
|
|
}
|
|
|
|
public function set(string $cache_key, string $data, $timeout = 3600): void {
|
|
apcu_store($cache_key, $data, $timeout);
|
|
}
|
|
}
|