PSR-6 and PSR-16 Cache Adapters for CodeIgniter 4
Disclaimer: CodeIgniter 4 comes with a fully-functional cache component! This module is only for integrating third-party packages that rely on the PSR interface provisions.
> composer require codeigniter4/cache
use CodeIgniter\Psr\Cache\SimpleCache;
use Kreait\Firebase\Factory;
...
$factory = (new Factory)->withVerifierCache(new SimpleCache());
A set of adapters fully-compliant with PSR-6 and PSR-16 to integrate with CodeIgniter 4's Caching Driver.
Install easily via Composer to take advantage of CodeIgniter 4's autoloading capabilities and always be up-to-date:
> composer require codeigniter4/cache
Or, install manually by downloading the source files and adding the directory to
app/Config/Autoload.php
.
This module has adapters for CodeIgniter 4 to supply the following FIG PHP Standards Recommendations (PSR):
If you just need a caching agent then you should use the framework's native Caching Driver. These adapters are intended to integrate with any library or project that requires either of the following:
The interfaces are provided by the following classes:
Psr\Cache\CacheItemInterface
provided by CodeIgniter\Psr\Cache\Item
Psr\Cache\CacheItemPoolInterface
provided by CodeIgniter\Psr\Cache\Pool
Psr\SimpleCache\CacheInterface
provided by CodeIgniter\Psr\Cache\SimpleCache
By default the adapters (Pool
and SimpleCache
) will work with the Caching Driver as defined
in you cache configuration (e.g. app/Config/Cache.php). You may create either driver explicitly
with an alternative Cache Handler or Config:
$sharedCacheServicePool = new \CodeIgniter\Psr\Cache\Pool();
$fileHandler = new \CodeIgniter\Cache\Handlers\FileHandler(config('Cache'));
$explicitFileHandlerSimpleCache = new \CodeIgniter\Psr\Cache\SimpleCache($fileHandler);
$config = config('Cache');
$config->prefix = 'banana-';
$alternativeConfigPool = new \CodeIgniter\Psr\Cache\Pool($config);
Testing of the underlying Caching Driver is handled in the CodeIgniter 4 repo. These adapters are tested with the PHP Cache Integration Tests, by Aaron Scherer. You may run the test suite by cloning this repo, installing all dependencies, and running:
> composer test