beste/in-memory-cache

一个PSR-6内存缓存,可以用作回退实现和在测试中使用。

资助包维护!
jeromegamez

1.3.1 2024-08-26 15:51 UTC

This package is auto-updated.

Last update: 2024-08-26 15:54:28 UTC


README

一个PSR-6内存缓存,可以用作默认实现和在测试中使用。

Current version Packagist PHP Version Support Monthly Downloads Total Downloads Tests

安装

composer require beste/in-memory-cache

使用

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');

您也可以提供自己的PSR-20时钟实现,例如用于测试的冻结时钟,例如来自beste/clock

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);

运行测试

composer test

许可证

本项目采用MIT许可证发布。