Added apcu caching method and bump

This commit is contained in:
Pablo Ferreiro 2023-01-25 15:56:23 +01:00
parent faf1dcee51
commit d273b35e53
No known key found for this signature in database
GPG key ID: 41FBCE65B779FA24
5 changed files with 38 additions and 8 deletions

25
app/Cache/ApcuCache.php Normal file
View file

@ -0,0 +1,25 @@
<?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);
}
}

View file

@ -3,5 +3,6 @@ namespace App\Constants;
abstract class CacheMethods {
const JSON = 'json';
const APCU = 'apcu';
const REDIS = 'redis';
}

View file

@ -1,6 +1,7 @@
<?php
namespace App\Helpers;
use App\Cache\ApcuCache;
use App\Cache\JSONCache;
use App\Cache\RedisCache;
use App\Constants\CacheMethods;
@ -138,6 +139,9 @@ class Wrappers {
case CacheMethods::JSON:
$cacheEngine = new JSONCache();
break;
case CacheMethods::APCU:
$cacheEngine = new ApcuCache();
break;
case CacheMethods::REDIS:
if (!(isset($_ENV['REDIS_URL']) || isset($_ENV['REDIS_HOST'], $_ENV['REDIS_PORT']))) {
throw new \Exception('You need to set REDIS_URL or REDIS_HOST and REDIS_PORT to use Redis Cache!');

View file

@ -1,7 +1,7 @@
{
"name": "pablouser1/proxitok",
"description": "An alternative frontend for TikTok",
"version": "2.4.4.1",
"version": "2.4.4.2",
"license": "AGPL-3.0-or-later",
"type": "project",
"authors": [

14
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "f9cec7d0ed07b8f1d6db885ceefd3226",
"content-hash": "c6c6c5ecb586c3f4701ffb57ccf385e4",
"packages": [
{
"name": "bramus/router",
@ -263,16 +263,16 @@
},
{
"name": "pablouser1/tikscraper",
"version": "v2.3.3.3",
"version": "v2.3.3.4",
"source": {
"type": "git",
"url": "https://github.com/pablouser1/TikScraperPHP.git",
"reference": "a870b234fbb10f2bafea2130510f463b03069dd8"
"reference": "065cd740373f6f423d366d73ea94437041ec85cd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/pablouser1/TikScraperPHP/zipball/a870b234fbb10f2bafea2130510f463b03069dd8",
"reference": "a870b234fbb10f2bafea2130510f463b03069dd8",
"url": "https://api.github.com/repos/pablouser1/TikScraperPHP/zipball/065cd740373f6f423d366d73ea94437041ec85cd",
"reference": "065cd740373f6f423d366d73ea94437041ec85cd",
"shasum": ""
},
"require": {
@ -305,9 +305,9 @@
"description": "Get data from TikTok API",
"support": {
"issues": "https://github.com/pablouser1/TikScraperPHP/issues",
"source": "https://github.com/pablouser1/TikScraperPHP/tree/v2.3.3.3"
"source": "https://github.com/pablouser1/TikScraperPHP/tree/v2.3.3.4"
},
"time": "2023-01-25T14:15:59+00:00"
"time": "2023-01-25T14:17:57+00:00"
},
{
"name": "php-webdriver/webdriver",