No description, website, or topics provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
tests
.coveralls.yml
.gitignore
.travis.yml
LICENSE.md
README.md
composer.json
phpunit.xml

README.md

SimpleCache

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)