mesavolt/simple-cache

Simple cache service.

v2.2.0 2023-07-27 13:34 UTC

This package is auto-updated.

Last update: 2024-04-27 15:20:44 UTC


README

Latest Stable Version Build Status Coverage Status License

Simple cache system based on Symfony's Cache component. Will always return a value, fresh or from cache, depending on TTL.

Installation

composer require mesavolt/simple-cache

Usage

<?php

use Mesavolt\SimpleCache;

$cache = new SimpleCache(sys_get_temp_dir());
$ttl = 10; // values expire after 10 seconds

// use the cache for the 1st, the callable is executed, a fresh value is cached and returned
$value1 = $cache->get('key', function () {
    return time();
}, $ttl);

// use the cache again before TTL has passed.
// the callable is *not* executed again, the previously cached value is returned
$value2 = $cache->get('key', function () {
    return time();
}, $ttl);

assert($value2 === $value1); // true because TTL hasn't expired

// sleep 20 seconds, this is longer that our TTL of 10 seconds
sleep(20);

// use the cache for the 3rd time, TTL has expired so a new fresh value is cached and returned
$value3 = $cache->get('key', function () {
    return time();
});

assert($value3 !== $value1); // true because `sleep(20)` expired the TTL
                             // so the callable has been executed
                             // and a fresh value has been returned (and cached)