neos/cache

Neos Cache Framework

Maintainers

Details

github.com/neos/cache

Homepage

Source

Fund package maintenance!
shop.neos.io/neosfunding

Installs: 1 281 219

Dependents: 21

Suggesters: 0

Security: 0

Stars: 9

Watchers: 4

Forks: 3

9.0.0-beta14 2024-06-17 08:55 UTC

This package is auto-updated.

Last update: 2024-10-14 14:50:17 UTC


README

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.

Note

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/>_

Installation

Install latest version via composer:

composer require neos/cache

Basic usage

$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.

Documentation

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.

Note

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.

Contribute

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.