One Hat Cyber Team
Your IP :
18.189.178.124
Server IP :
50.28.103.30
Server :
Linux host.jcukjv-lwsites.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
Server Software :
nginx/1.24.0
PHP Version :
8.3.12
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
www
/
wwwroot
/
globify.live
/
fns
/
SleekDB
/
Classes
/
View File Name :
CacheHandler.php
<?php namespace SleekDB\Classes; use SleekDB\Cache; use SleekDB\Exceptions\IOException; use SleekDB\QueryBuilder; /** * Class CacheHandler * Bridge between Query and Cache */ class CacheHandler { /** * @var Cache */ protected $cache; protected $cacheTokenArray; protected $regenerateCache; protected $useCache; /** * CacheHandler constructor. * @param string $storePath * @param QueryBuilder $queryBuilder */ public function __construct(string $storePath, QueryBuilder $queryBuilder) { $this->cacheTokenArray = $queryBuilder->_getCacheTokenArray(); $queryBuilderProperties = $queryBuilder->_getConditionProperties(); $this->useCache = $queryBuilderProperties["useCache"]; $this->regenerateCache = $queryBuilderProperties["regenerateCache"]; $this->cache = new Cache($storePath, $this->_getCacheTokenArray(), $queryBuilderProperties["cacheLifetime"]); } /** * @return Cache */ public function getCache(): Cache { return $this->cache; } /** * Get results from cache * @return array|null * @throws IOException */ public function getCacheContent($getOneDocument) { if($this->getUseCache() !== true){ return null; } $this->updateCacheTokenArray(['oneDocument' => $getOneDocument]); if($this->regenerateCache === true) { $this->getCache()->delete(); } $cacheResults = $this->getCache()->get(); if(is_array($cacheResults)) { return $cacheResults; } return null; } /** * Add content to cache * @param array $results * @throws IOException */ public function setCacheContent(array $results) { if($this->getUseCache() === true){ $this->getCache()->set($results); } } /** * Delete all cache files that have no lifetime. * @return bool */ public function deleteAllWithNoLifetime(): bool { return $this->getCache()->deleteAllWithNoLifetime(); } /** * Returns a reference to the array used for cache token generation * @return array */ public function &_getCacheTokenArray(): array { return $this->cacheTokenArray; } /** * @param array $tokenUpdate */ private function updateCacheTokenArray(array $tokenUpdate) { if(empty($tokenUpdate)) { return; } $cacheTokenArray = $this->_getCacheTokenArray(); foreach ($tokenUpdate as $key => $value){ $cacheTokenArray[$key] = $value; } $this->cacheTokenArray = $cacheTokenArray; } /** * Status if cache is used or not * @return bool */ private function getUseCache(): bool { return $this->useCache; } }