[CACHE][WRAPPER] Fix cache wrapper
This commit is contained in:
parent
4f85594bec
commit
9d2f6e7425
@ -17,7 +17,7 @@
|
|||||||
// along with GNU social. If not, see <http://www.gnu.org/licenses/>.
|
// along with GNU social. If not, see <http://www.gnu.org/licenses/>.
|
||||||
// }}}
|
// }}}
|
||||||
|
|
||||||
namespace App\Core\Cache;
|
namespace App\Core;
|
||||||
|
|
||||||
use Functional as F;
|
use Functional as F;
|
||||||
use Symfony\Component\Cache\Adapter\AbstractAdapter;
|
use Symfony\Component\Cache\Adapter\AbstractAdapter;
|
||||||
@ -26,7 +26,7 @@ use Symfony\Component\Cache\Adapter\ChainAdapter;
|
|||||||
abstract class Cache
|
abstract class Cache
|
||||||
{
|
{
|
||||||
protected static AbstractAdapter $pool;
|
protected static AbstractAdapter $pool;
|
||||||
private const ENV_VAR = 'SOCIAL_CACHE_ADAPTER';
|
private static string $ENV_VAR = 'SOCIAL_CACHE_ADAPTER';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configure a cache pool, with adapters taken from `ENV_VAR`.
|
* Configure a cache pool, with adapters taken from `ENV_VAR`.
|
||||||
@ -35,11 +35,11 @@ abstract class Cache
|
|||||||
*/
|
*/
|
||||||
public static function setPool()
|
public static function setPool()
|
||||||
{
|
{
|
||||||
if (!isset($_ENV[ENV_VAR])) {
|
if (!isset($_ENV[self::$ENV_VAR])) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$adapters = F\map(explode(':', strtolower($_ENV[ENV_VAR])),
|
$adapters = F\map(explode(':', strtolower($_ENV[self::$ENV_VAR])),
|
||||||
function (string $a) {
|
function (string $a) {
|
||||||
return 'Adapter\\' . ucfirst($a) . 'Adapter';
|
return 'Adapter\\' . ucfirst($a) . 'Adapter';
|
||||||
});
|
});
|
||||||
@ -51,11 +51,23 @@ abstract class Cache
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public static function get(string $key, callable $calculate, float $beta = 1.0)
|
||||||
* Forward calls to the configured $pool
|
|
||||||
*/
|
|
||||||
public static function __callStatic(string $name, array $args)
|
|
||||||
{
|
{
|
||||||
return self::$pool->{$name}(...$args);
|
return self::$pool->get($key, $calculate, $beta);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function delete(string $key)
|
||||||
|
{
|
||||||
|
return self::$pool->delete($key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getList(string $key, callable $calculate, int $max_count = 0, float $beta = 1.0)
|
||||||
|
{
|
||||||
|
// Get the current keys associated with a list. If the cache
|
||||||
|
// is not primed, the function is called and returns an empty
|
||||||
|
// list
|
||||||
|
$keys = self::get($key, function (ItemInterface $i) { return []; }, $beta);
|
||||||
|
if ($max_count == 0) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user