phapi / cache-nullcache
Phapi NullCache is a fallback cache package with a fake cache storage.
Installs: 1 568
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=5.6.0
- phapi/contract: 1.*
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- mockery/mockery: 0.9.*
- phpunit/phpunit: 4.*
This package is not auto-updated.
Last update: 2021-02-05 22:22:56 UTC
README
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:
- Implement the
Phapi\Contract\Cache
interface. The interface implies that 5 methods are implemented:
set($key, $value)
- Save the key and value to the cacheget($key)
- Get the value for the keyhas($key)
- Check if key exists (return boolean)clear($key)
- Remove the key from the cacheflush()
- Clear the cache
- 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.