alejoasotelo / joomla-cache-compat
Joomla Cache Package - PSR Compatbility
Installs: 41
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 10
Type:joomla-package
Requires
- php: ^5.3.10|~7.0
Requires (Dev)
- joomla/coding-standards: ~2.0@alpha
- joomla/test: ~1.0
- phpunit/phpunit: ^4.8.35|^5.4.3|~6.0
Suggests
- ext-apc: To use APC caching
- ext-memcached: To use Memcached caching
- ext-redis: To use Redis caching
- ext-wincache: To use WinCache caching
- ext-xcache: To use XCache caching
- joomla/registry: Registry can be used as an alternative to using an array for the package options.
Conflicts
- psr/cache: *
README
This cache package is based on a version of the now accepted PSR-6 as it was in 2013.
Deprecated
The alejoasotelo/joomla-cache-compat
package has been deprecated with no further updates planned.
Options and General Usage
Following option as available across a cache storage types:
- ttl - Time to live.
use Joomla\Cache; $options = array( 'ttl' => 900, ); $cache = new Cache\Runtime($options); // Set a value in the cache. $cache->set('key', 'value'); // Get the value back. $value = $cache->get('key')->getValue(); // Remove the item from the cache. $cache->remove('key'); // Clear all the items from the cache. $cache->clear(); // Get multiple values from the cache at once. $values = $cache->getMultiple(array('key1', 'key2')); // Set multiple values from the cache at once. $values = $cache->setMultiple(array('key1' => 'value1', 'key2' => 'value2')); // Remove multiple values from the cache at once. $values = $cache->removeMultiple(array('key1', 'key2'));
Cache Storage Types
The following storage types are supported.
Apc
use Joomla\Cache; $cache = new Cache\Apc;
File
The File cache allows the following additional options:
- file.path - the path where the cache files are to be stored.
- file.locking
use Joomla\Cache; $options = array( 'file.path' => __DIR__ . '/cache', ); $cache = new Cache\File($options);
Memcached
use Joomla\Cache; $cache = new Cache\Memcached;
None
use Joomla\Cache; $cache = new Cache\None;
Runtime
use Joomla\Cache; $cache = new Cache\Runtime;
Wincache
use Joomla\Cache; $cache = new Cache\Wincache;
XCache
use Joomla\Cache; $cache = new Cache\XCache;
Test Mocking
The Cache
package provide a PHPUnit helper to mock a Cache\Cache
object or an Cache\Item
object. You can include your own optional overrides in the test class for the following methods:
Cache\Cache::get
: Add a method calledmockCacheGet
to your test class. If omitted, the helper will return a default mock for theCache\Item
class.Cache\Item::getValue
: Add a method calledmockCacheItemGetValue
to your test class. If omitted, the mockCache\Item
will return"value"
when this method is called.Cache\Item::isHit
: Add a method calledmockCacheItemIsHit
to your test class. If omitted, the mockCache\Item
will returnfalse
when this method is called.
use Joomla\Cache\Tests\Mocker as CacheMocker; class FactoryTest extends \PHPUnit_Framework_TestCase { private $instance; // // The following mocking methods are optional. // /** * Callback to mock the Cache\Item::getValue method. * * @return string */ public function mockCacheItemGetValue() { // This is the default handling. // You can override this method to provide a custom return value. return 'value'; } /** * Callback to mock the Cache\Item::isHit method. * * @return boolean */ public function mockCacheItemIsHit() { // This is the default handling. // You can override this method to provide a custom return value. return false; } /** * Callback to mock the Cache\Cache::get method. * * @param string $text The input text. * * @return string */ public function mockCacheGet($key) { // This is the default handling. // You can override this method to provide a custom return value. return $this->createMockItem(); } protected function setUp() { parent::setUp(); $mocker = new CacheMocker($this); $this->instance = new SomeClass($mocker->createMockCache()); } }
Installation via Composer
Add "alejoasotelo/joomla-cache-compat": "~1.0"
to the require block in your composer.json and then run composer install
.
{ "require": { "alejoasotelo/joomla-cache-compat": "~1.0" } }
Alternatively, you can simply run the following from the command line:
composer require alejoasotelo/joomla-cache-compat "~1.0"