Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/beste/in-memory-cache-php
A PSR-6 In-Memory cache that can be used as a fallback implementation and/or in tests.
https://github.com/beste/in-memory-cache-php
cache php psr-6
Last synced: 19 days ago
JSON representation
A PSR-6 In-Memory cache that can be used as a fallback implementation and/or in tests.
- Host: GitHub
- URL: https://github.com/beste/in-memory-cache-php
- Owner: beste
- License: mit
- Created: 2023-12-08T23:04:30.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-13T08:09:48.000Z (about 2 months ago)
- Last Synced: 2024-12-06T17:53:57.246Z (about 1 month ago)
- Topics: cache, php, psr-6
- Language: PHP
- Homepage:
- Size: 53.7 KB
- Stars: 11
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# PSR-6 In-Memory Cache
A [PSR-6](https://www.php-fig.org/psr/psr-6/) In-Memory cache that can be used as a default implementation and in tests.
[![Current version](https://img.shields.io/packagist/v/beste/in-memory-cache.svg?logo=composer)](https://packagist.org/packages/beste/in-memory-cache)
[![Packagist PHP Version Support](https://img.shields.io/packagist/php-v/beste/in-memory-cache)](https://packagist.org/packages/beste/in-memory-cache)
[![Monthly Downloads](https://img.shields.io/packagist/dm/beste/in-memory-cache.svg)](https://packagist.org/packages/beste/in-memory-cache/stats)
[![Total Downloads](https://img.shields.io/packagist/dt/beste/in-memory-cache.svg)](https://packagist.org/packages/beste/in-memory-cache/stats)
[![Tests](https://github.com/beste/in-memory-cache-php/actions/workflows/tests.yml/badge.svg)](https://github.com/beste/in-memory-cache-php/actions/workflows/tests.yml)## Installation
```shell
composer require beste/in-memory-cache
```## Usage
```php
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](https://www.php-fig.org/psr/psr-20/) clock implementation, for example a frozen
clock for testing, for example from the [`beste/clock` library](https://github.com/beste/clock).```php
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
```shell
composer test
```## License
This project is published under the [MIT License](LICENSE).