eufony/cache

Essentials for getting started with PSR-6 and PSR-16 caching.

v1.1.0 2024-02-13 11:25 UTC

This package is auto-updated.

Last update: 2024-12-13 13:07:09 UTC


README

Packagist Downloads GitHub Stars Issues
License Community Built

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.

Getting started

Installation

eufony/cache is released as a Packagist package and can be easily installed via Composer with:

composer require "eufony/cache"

Basic Usage

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(/* ... */);

Contributing

Found a bug or a missing feature? You can report it over at the issue tracker.

License

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