PSR-6 In-Memory Cache
A PSR-6 In-Memory cache that can be used as a default implementation and in tests.
Installation
composer require beste/in-memory-cacheUsage
use Beste\Cache\InMemoryCache;
$cache = new InMemoryCache();
$item = $cache->getItem('key');
assert($item->isHit() === false);
assert($item->get() === null);
$item->set('value');
$cache->save($item);
// Later...
$item = $cache->getItem('key');
assert($item->isHit() === true);
assert($item->get() === 'value');You can also provide your own PSR-20 clock implementation, for example a frozen
clock for testing, for example from the beste/clock library.
use Beste\Clock\FrozenClock;
use Beste\Cache\InMemoryCache;
$clock = FrozenClock::fromUTC()
$cache = new InMemoryCache();
$item = $cache->getItem('key');
$item->set('value')->expiresAfter(new DateInterval('PT5M'));
$cache->save($item);
$clock->setTo($clock->now()->add(new DateInterval('PT2M')));
assert($cache->getItem('key')->isHit() === true);
$clock->setTo($clock->now()->add(new DateInterval('PT5M')));
assert($cache->getItem('key')->isHit() === false);Running tests
composer testLicense
This project is published under the MIT License.
On this page
Languages
PHP100.0%
MIT License
Created December 9, 2023
Updated March 16, 2026