phapi/cache-nullcache

This package is abandoned and no longer maintained. No replacement package was suggested.

Phapi NullCache is a fallback cache package with a fake cache storage.

1.0.0 2015-07-02 08:31 UTC

This package is not auto-updated.

Last update: 2021-02-05 22:22:56 UTC


README

Build status Code Climate Test Coverage

Phapi NullCache is a fallback cache package that acts like a working cache but it really doesn't. The benefit is that if no other cache has been configured the NullCache will be used. Every time the cache is called in the code the NullCache will act like a real cache so that the application doesn't break.

Phapi has one important rule regarding cache: A working cache should not be a requirement for the application to work. So if Phapi is unable to connect to the cache backend it wont stop the execution. Instead the configured cache will be replaced with a dummy cache, new NullCache().

Installation & configuration

The package is by default included by the Phapi framework.

General cache usage

<?php
// Add something to the cache
$cache->set('test', 'value');

// Read something from the cache
echo $cache->get('test'); // Will echo "value"

// Check if something exists in the cache
$bool = $cache->has('test');

// Remove from cache
$cache->clear('test');

// Flush the cache
$cache->flush();

Implement a new Cache package

There are two simple rules when implementing a new cache package:

  1. Implement the Phapi\Contract\Cache interface. The interface implies that 5 methods are implemented:
  • set($key, $value) - Save the key and value to the cache
  • get($key) - Get the value for the key
  • has($key) - Check if key exists (return boolean)
  • clear($key) - Remove the key from the cache
  • flush() - Clear the cache
  1. The __construct should connect to the cache backend and throw an exception if it fails to connect. If an exception is thrown the NullCache will be used instead.

License

Phapi NullCache is licensed under the MIT License - see the license.md file for details

Contribute

Contribution, bug fixes etc are always welcome.