beste / in-memory-cache
一个PSR-6内存缓存,可以用作回退实现和在测试中使用。
1.3.1
2024-08-26 15:51 UTC
Requires (Dev)
- beste/clock: ^3.0
- beste/php-cs-fixer-config: ^3.2.0
- friendsofphp/php-cs-fixer: ^3.62.0
- phpstan/extension-installer: ^1.4.1
- phpstan/phpstan: ^1.11.10
- phpstan/phpstan-deprecation-rules: ^1.2.0
- phpstan/phpstan-phpunit: ^1.4.0
- phpstan/phpstan-strict-rules: ^1.6.0
- phpunit/phpunit: ^10.5.2 || ^11.3.1
- symfony/var-dumper: ^6.4 || ^7.1.3
Suggests
- psr/clock-implementation: Allows injecting a Clock, for example a frozen clock for testing
Provides
- psr/cache-implementation: 2.0 || 3.0
README
一个PSR-6内存缓存,可以用作默认实现和在测试中使用。
安装
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许可证发布。