eufony/cache provides the most trivial implementations of PSR-6 and PSR-16 as well as other essentials for getting started with caching.
eufony/cache is a small PHP library that handles basic caching needs without overcomplicating things. It implements the simplest kinds cache pools, supporting both the PSR-6 and PSR-16 standards, plus:
- Adapter classes to convert between PSR-6 and PSR-16 caching implementations.
- Utility classes to aid in the implementation of other caching backends.
- An extension to the caching standards using a tag-based cache invalidation technique.
- A framework to hook in to and modify the cache values on their way in and out of the pool.
Interested? Here's how to get started.
eufony/cache is released as a Packagist package and can be easily installed via Composer with:
composer require "eufony/cache"
For a more detailed documentation, see here.
eufony/cache provides three different caching implementations:
// An in-memory cache pool using a PHP array.
$cache = new ArrayCache();
// An in-memory cache pool using the `apcu` extension,
// which can share cache values between processes on the same host.
$cache = new ApcuCache();
// A fake cache based on the Null Object Pattern.
$cache = new NullCache();
You can extend these cache pools using marshallers and a tag-based cache invalidation interface.
It also provides adapter classes to convert between PSR-6 and PSR-16 cache implementations:
// Convert from PSR-6 to PSR-16.
$cache = new Psr16Adapter(/* ... */);
// Convert from PSR-16 to PSR-6.
$cache = new Psr6Adapter(/* ... */);
Found a bug or a missing feature? You can report it over at the issue tracker.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program. If not, see https://www.gnu.org/licenses/.