jmf / simple-cache
Cache package implementing PSR-16 simple cache interface.
1.1.0
2026-01-18 22:57 UTC
Requires
- php: >=8.3
- psr/clock: ^1.0
- psr/log: ^3.0
- psr/simple-cache: ^3.0
- webmozart/assert: ^1.0|^2.0
Requires (Dev)
- overtrue/phplint: ^9.7
- phpstan/phpstan: ^2.1.22
- phpstan/phpstan-strict-rules: ^2.0.6
- phpunit/phpunit: ^12.3.6
- rector/rector: ^2.1.4
- squizlabs/php_codesniffer: ^4.0
Provides
README
Allows caching of data (with Memcached, file-system, etc).
Installation & Requirements
Install with Composer:
composer require jmf/simple-cache
Usage
Initialization
Memcached Storage
<?php use Jmf\Cache\Cache; use Jmf\Cache\Storage\MemcachedStorage; use Psr\Clock\ClockInterface; use Psr\Log\LoggerInterface; /* @var ClockInterface $clock */ /* @var LoggerInterface $logger */ $storage = MemcachedStorage::createFromCredentials('123.45.67.89'); $cache = new Cache($storage, $clock, $logger);
File System Storage
<?php use Jmf\Cache\Cache; use Jmf\Cache\Storage\FileSystemStorage; use Psr\Clock\ClockInterface; use Psr\Log\LoggerInterface; /* @var ClockInterface $clock */ /* @var LoggerInterface $logger */ $storage = new FileSystemStorage('/tmp/cache'); $cache = new Cache($storage, $clock, $logger);
Volatile (per-process) Storage
<?php use Jmf\Cache\Cache; use Jmf\Cache\Storage\VolatileStorage; use Psr\Clock\ClockInterface; use Psr\Log\LoggerInterface; /* @var ClockInterface $clock */ /* @var LoggerInterface $logger */ $storage = new VolatileStorage(); $cache = new Cache($storage, $clock, $logger);
Null Storage (caches nothing)
<?php use Jmf\Cache\Cache; use Jmf\Cache\Storage\NullStorage; use Psr\Clock\ClockInterface; use Psr\Log\LoggerInterface; /* @var ClockInterface $clock */ /* @var LoggerInterface $logger */ $storage = new NullStorage(); $cache = new Cache($storage, $clock, $logger);
Storing data into cache
<?php $objectToStore = new \stdClass(); $objectToStore->bar = 'baz'; $cache->set('foo', $objectToStore);
Retrieving data from cache
<?php $object = $cache->get('foo'); // ... $object = $cache->delete('foo');
Testing data presence in cache
<?php if ($cache->has('foo') { // ... }
Removing data from cache
<?php $cache->delete('foo');