allow vendord
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 32s
Build, Push and Deploy / deploy-production (push) Has been skipped
Build, Push and Deploy / cleanup (push) Successful in 1s
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 32s
Build, Push and Deploy / deploy-production (push) Has been skipped
Build, Push and Deploy / cleanup (push) Successful in 1s
This commit is contained in:
69
vendor/beste/in-memory-cache/README.md
vendored
Normal file
69
vendor/beste/in-memory-cache/README.md
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
# 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.
|
||||
|
||||
[](https://packagist.org/packages/beste/in-memory-cache)
|
||||
[](https://packagist.org/packages/beste/in-memory-cache)
|
||||
[](https://packagist.org/packages/beste/in-memory-cache/stats)
|
||||
[](https://packagist.org/packages/beste/in-memory-cache/stats)
|
||||
[](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).
|
||||
Reference in New Issue
Block a user