kbra/cache

KBRA Cache

Installs: 1 016

Dependents: 0

Suggesters: 0

Security: 0

Stars: 4

Watchers: 2

Forks: 2

Open Issues: 0

Type:project

0.2.1 2018-05-23 23:05 UTC

This package is not auto-updated.

Last update: 2024-04-13 06:30:49 UTC


README

A simple PHP cache library

Getting Started

Prerequisites

Installing

Install with composer:

composer require kbra/cache

Set the configuration based on your cache driver. Using Redis, your config might look something like this:

$settings = [
    'driver' => 'redis',
    'maxRetries' => 3,
    'config' => [
        'defaultTtl' => 900,
        'host' => 'cache.example.com',
        'port' => 6379,
        'database' => 11,
        'password' => 'SuperSecretPassword',
        'timeout' => 3,
    ],
];

$cacheService = new CacheService($settings);

Right now this library only properly handles connection errors from Redis

You may choose to connect your cache driver manually:

$cacheService->connect();

But if you don't, a connection will be attempted the first time it is needed.

To save data to the cache:

$cacheService->set('some-data', $data);

And to retrieve it from the cache:

$data = $cacheService->get('some-data');

You can pass some extra options when saving data to the cache. A unique cache key will be generated based on the name and options passed. For example, if you wanted to cache a database query with some parameters:

$query = "SELECT * FROM table WHERE thing = :thing";
$params = [':thing' => 'something'];
$result = $pdo->fetchAll($query, $params);

$cacheService->set($query, $result, $params);

And to get the cached result:

$result = $cacheService->get($query, $params);

You can also save some tags associated with the cache data, which can be used later to remove items from the cache:

$tags = [$userName, 'portfolio'];
$cacheService->set($query, $result, $params, $tags);

// clear ALL caches tagged with 'portfolio'
$cacheService->clearTags('portfolio');

Running the tests

composer test or phpunit

Built With

  • phpfastcache - A PHP high-performance backend cache system

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details

Acknowledgments

  • Kroll Bond Rating Agency, Inc.
  • Rubber ducks