Simple PSR-6/PSR-16 compatible disk cache

0.4.0 2018-03-27 11:38 UTC


A simple PSR-6/PSR-16 compatible disk cache for PHP

Latest Stable Version Build Status Coverage Status


The recommended method of installing this library is via Composer.

Run the following command from your project root:

$ composer require duncan3dc/cache

Quick Examples

There are 2 cache providers available, one is the local filesystem and the other is simple array cache in memory.

Using the FilesystemPool will persist data forever (or until the filesystem is purged).

$cache = new \duncan3dc\Cache\FilesystemPool;

# The $cache object implements PSR-6
$userData = $cache->getItem("user_data")->get();

# ...and PSR-16
$userData = $cache->get("user_data");

Using the ArrayPool will not persist data beyond the current request.

$cache = new \duncan3dc\Cache\ArrayPool;

# The $cache object implements PSR-6
$userData = $cache->getItem("user_data")->get();

# ...and PSR-16
$userData = $cache->get("user_data");

There's also a trait to allow any method to be automatically cached.

$cache = new class {
    use \duncan3dc\Cache\CacheCallsTrait;

    public function _getData()
        return [];


The first time getData() is called then _getData() will be run, but after that future calls to getData() will just return the cached result from the first call to _getData().


A Changelog has been available since the beginning of time

Where to get help

Found a bug? Got a question? Just not sure how something works?
Please create an issue and I'll do my best to help out.
Alternatively you can catch me on Twitter