This is a generic cache package for use in projects. It implements PSR-6 and PSR-16 but also brings own interfaces used in Flow and Neos which support additional featuers.
This repository is a read-only subsplit of a package that is part of the
Flow framework (learn more on http://flow.neos.io <http://flow.neos.io/>
_).
All pull requests and issues should be opened in the main repository.
The package is usable without the Flow framework, but if you
want to use it, please have a look at the Flow documentation <http://flowframework.readthedocs.org/en/stable/>
_
Install latest version via composer:
composer require neos/cache
$environmentConfiguration = new \Neos\Cache\EnvironmentConfiguration('appIdentifier', __DIR__);
// This cache factory can be used for PSR-6 caches
// and for the Neos CacheInterface
$cacheFactory = new \Neos\Cache\Psr\Cache\CacheFactory(
$environmentConfiguration
);
// Create a PSR-6 compatible cache
$cachePool = $cacheFactory->create(
'myCache',
\Neos\Cache\Backend\SimpleFileBackend::class
);
// Create a PSR-16 compatible cache
$simpleCacheFactory = new \Neos\Cache\Psr\SimpleCache\SimpleCacheFactory(
$environmentConfiguration
);
$simpleCache = $simpleCacheFactory->create(
'myCache',
\Neos\Cache\Backend\SimpleFileBackend::class
);
The first argument given to either factory is a unique identifier for the specific cache instance. If you need different caches you should give them separate identifiers.
Both the PSR-6 CachePool and the PSR-16 SimpleCache are separate implementations with their respective factories,
but both use the existing backends
that can also be used with the \Neos\Cache\Frontend\FrontendInterface
implementations, which are slightly
different than the PSR caches but also implement additional features like tagging.
Both PSR implementations are not integrated in Flow yet, so when you use them within a Flow installation
it's your responsibility to flush them correctly as ./flow flow:cache:flush
will not do that in this case.
If you want to contribute to this package or the Flow framework, please have a look at https://github.com/neos/flow-development-collection - it is the repository used for development and all pull requests should go into it.