for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Onoi\Cache;
use Doctrine\Common\Cache\Cache as DoctrineCacheClient;
use Zend\Cache\Storage\StorageInterface;
use BagOStuff;
/**
* @license GNU GPL v2+
* @since 1.0
*
* @author mwjames
*/
class CacheFactory {
* @var CacheFactory
private static $instance = null;
* @return CacheFactory
public static function getInstance() {
if ( self::$instance === null ) {
self::$instance = new self();
}
return self::$instance;
public static function clear() {
self::$instance = null;
* @param BagOStuff $cache
* @return MediaWikiCache
public function newMediaWikiCache( BagOStuff $cache ) {
return new MediaWikiCache( $cache );
* @param DoctrineCacheClient $cache
* @return DoctrineCache
public function newDoctrineCache( DoctrineCacheClient $cache ) {
return new DoctrineCache( $cache );
* @since 1.1
* @param integer $cacheSize
* @return FixedInMemoryLruCache
public function newFixedInMemoryLruCache( $cacheSize = 500 ) {
return new FixedInMemoryLruCache( $cacheSize );
* @deprecated since 1.1, use CacheFactory::newFixedInMemoryLruCache
public function newFixedInMemoryCache( $cacheSize = 500 ) {
return $this->newFixedInMemoryLruCache( $cacheSize );
* @param Cache[] $caches
* @return CompositeCache
public function newCompositeCache( array $caches ) {
return new CompositeCache( $caches );
* @return NullCache
public function newNullCache() {
return new NullCache();
* @param StorageInterface $cache
* @return ZendCache
public function newZendCache( StorageInterface $cache ) {
return new ZendCache( $cache );