diff --git a/lib/memcache/cache.php b/lib/memcache/cache.php index 331c689f06..b9e0c2249a 100644 --- a/lib/memcache/cache.php +++ b/lib/memcache/cache.php @@ -9,23 +9,7 @@ namespace OC\Memcache; abstract class Cache { - /** - * get a cache instance - * - * @param bool $global - * @return Cache - */ - static function create($global = false) { - if (XCache::isAvailable()) { - return new XCache($global); - } elseif (APC::isAvailable()) { - return new APC($global); - } elseif (Memcached::isAvailable()) { - return new Memcached($global); - } else { - return null; - } - } + /** * @param bool $global @@ -63,11 +47,4 @@ abstract class Cache { * @return mixed */ abstract public function clear($prefix = ''); - - /** - * @return bool - */ - static public function isAvailable() { - return XCache::isAvailable() || APC::isAvailable() || Memcached::isAvailable(); - } } diff --git a/lib/memcache/factory.php b/lib/memcache/factory.php new file mode 100644 index 0000000000..1926582aa5 --- /dev/null +++ b/lib/memcache/factory.php @@ -0,0 +1,38 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Memcache; + +class Factory { + /** + * get a cache instance, will return null if no backend is available + * + * @param bool $global + * @return \OC\Memcache\Cache + */ + function create($global = false) { + if (XCache::isAvailable()) { + return new XCache($global); + } elseif (APC::isAvailable()) { + return new APC($global); + } elseif (Memcached::isAvailable()) { + return new Memcached($global); + } else { + return null; + } + } + + /** + * check if there is a memcache backend available + * + * @return bool + */ + public function isAvailable() { + return XCache::isAvailable() || APC::isAvailable() || Memcached::isAvailable(); + } +}