c
This commit is contained in:
100
inc/Hura8/System/Cache.php
Normal file
100
inc/Hura8/System/Cache.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
namespace Hura8\System;
|
||||
|
||||
|
||||
use Symfony\Component\Cache\Adapter\RedisAdapter;
|
||||
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
|
||||
|
||||
|
||||
class Cache
|
||||
{
|
||||
|
||||
private static $redisCache = null;
|
||||
private static $fileCache = null;
|
||||
|
||||
protected function __construct() { }
|
||||
|
||||
|
||||
public static function getFileInstance(): FilesystemAdapter {
|
||||
|
||||
if(static::$fileCache instanceof FilesystemAdapter) {
|
||||
return static::$fileCache;
|
||||
}
|
||||
|
||||
static::$fileCache = new FilesystemAdapter(
|
||||
|
||||
// a string used as the subdirectory of the root cache directory, where cache
|
||||
// items will be stored
|
||||
$namespace = '',
|
||||
|
||||
// the default lifetime (in seconds) for cache items that do not define their
|
||||
// own lifetime, with a value 0 causing items to be stored indefinitely (i.e.
|
||||
// until the files are deleted)
|
||||
$defaultLifetime = 30,
|
||||
|
||||
// the main cache directory (the application needs read-write permissions on it)
|
||||
// if none is specified, a directory is created inside the system temporary directory
|
||||
$directory = CACHE_FILE_SYSTEM_DIRECTORY
|
||||
);
|
||||
|
||||
return static::$fileCache;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return RedisAdapter | false
|
||||
*/
|
||||
public static function getRedisInstance() {
|
||||
|
||||
if(!is_null(static::$redisCache)) {
|
||||
return static::$redisCache;
|
||||
}
|
||||
|
||||
try {
|
||||
// pass a single DSN string to register a single server with the client
|
||||
$redisConnection = RedisAdapter::createConnection( CACHE_REDIS_DSN , [
|
||||
//'read_timeout' => 10,
|
||||
//'retry_interval' => 2,
|
||||
/*
|
||||
'persistent' => 1,
|
||||
'persistent_id' => null,
|
||||
'timeout' => 10,
|
||||
|
||||
'tcp_keepalive' => 0,
|
||||
'lazy' => null,
|
||||
'redis_cluster' => false,
|
||||
'redis_sentinel' => null,*/
|
||||
] );
|
||||
|
||||
//var_dump($redisConnection->isConnected());
|
||||
|
||||
}catch (\Exception $exception) {
|
||||
//echo $exception->getMessage();
|
||||
$redisConnection = false;
|
||||
}
|
||||
|
||||
if(!$redisConnection) {
|
||||
static::$redisCache = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
static::$redisCache = new RedisAdapter(
|
||||
// the object that stores a valid connection to your Redis system
|
||||
$redisConnection,
|
||||
|
||||
// the string prefixed to the keys of the items stored in this cache
|
||||
$namespace = '',
|
||||
|
||||
// the default lifetime (in seconds) for cache items that do not define their
|
||||
// own lifetime, with a value 0 causing items to be stored indefinitely (i.e.
|
||||
// until RedisAdapter::clear() is invoked or the server(s) are purged)
|
||||
$defaultLifetime = 10
|
||||
);
|
||||
|
||||
return static::$redisCache;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user