beste / in-memory-cache
A PSR-6 In-Memory cache that can be used as a fallback implementation and/or in tests.
Fund package maintenance!
jeromegamez
Installs: 10 142
Dependents: 4
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 1
Requires (Dev)
- beste/clock: ^3.0
- friendsofphp/php-cs-fixer: ^3.41.0
- phpstan/extension-installer: ^1.3.1
- phpstan/phpstan: ^1.10.48
- phpstan/phpstan-deprecation-rules: ^1.1.4
- phpstan/phpstan-phpunit: ^1.3.15
- phpstan/phpstan-strict-rules: ^1.5.2
- phpunit/phpunit: ^10.5.2
- symfony/var-dumper: ^6.4.0
Suggests
- psr/clock-implementation: Allows injecting a Clock, for example a frozen clock for testing
Provides
- psr/cache-implementation: 2.0 || 3.0
This package is auto-updated.
Last update: 2024-04-04 05:58:01 UTC
README
A PSR-6 In-Memory cache that can be used as a default implementation and in tests.
Installation
composer require beste/in-memory-cache
Usage
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 test
License
This project is published under the MIT License.