A caching library implementing PSR-6 and PSR-16 interfaces
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Timothy Warren 49399b80ef Update dependencies, and update the provide section of composer.json 10 months ago
build Update version in PHP header comments 10 months ago
src Update version in PHP header comments 10 months ago
tests Update version in PHP header comments 10 months ago
.editorconfig First commit 6 years ago
.gitignore First commit 6 years ago
CHANGELOG.md Move changes to version 4, as it hasn't been released yet 10 months ago
Jenkinsfile Attempt to fix code quality check 10 months ago
README.md Update README with simple usage example 2 years ago
RoboFile.php Implement PSR-16 2 years ago
composer.json Update dependencies, and update the provide section of composer.json 10 months ago
phpdoc.dist.xml First commit 6 years ago
phpstan.neon Add PHPStan checks to CI 2 years ago

README.md

Banker

A Caching library implementing the PSR-6 and PSR-16 interfaces for several common cache backends

Cache Backends

  • Apcu
  • Memcached
  • Redis
  • Null - no persistence

Basic Usage (SimpleCache/PSR-16)

<?php
// $config is the configuration array
// $logger is an optional psr/log compatible logger
$cache = new Aviat\Banker\Teller($config, $logger);

// Get a value from the cache, returning $defaultValue
// if the value doesn't exist in the cache
$value = $cache->get($key, $defaultValue);

// Save a new value at the specified key
$saved = $cache->set($key, 'newValue');

Basic Usage (Pool/PSR-6)

<?php
// Create the pool
// $config is the configuration array
// $logger is an optional psr/log compatible logger
$pool = new Aviat\Banker\Pool($config, $logger);

// Grab an item from the cache
$item = $pool->getItem('foo');

// Was there a cache hit?
if ( ! $item->isHit())
{
	// ... Generation of value to cache
	$item->set($value);
	$item->save();
}
else
{
	$value = $item->get();
}

Configuration / Connection array

The config array passed to the Pool class constructor determines which server to connect to. Regardless of the backend, the basic structure is like so:

<?php
$config = [
	'driver' => 'null', // null, apcu, redis, memcached
	'connection' => [
		// Optional (For some drivers):
		// driver setup, see below for the structure for each
		// driver
	],
	'options' => [
		// Optional:
		// Set additional driver-specific options, like persistence for
		// Memcached, or a prefix for Redis keys
	]
];

Below are the connection arrays for each backend:

Memcached:

<?php
$config['connection'] = [
	'host' => 'localhost', // hostname or socket
	'port' => 11211,       // Port needs to be 0 if socket
	'persistent' => false, // Use persistent connection
];

Redis: See Predis documentation. An empty array will connect to localhost on port 6379.

Null, Apcu: No connection parameters