From d82c1dfcabe84709ff02ea5c13c82c573d524937 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 16 Jul 2013 15:34:22 +0200 Subject: [PATCH] split out memcache factory from base class --- lib/memcache/cache.php | 25 +------------------------ lib/memcache/factory.php | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 24 deletions(-) create mode 100644 lib/memcache/factory.php diff --git a/lib/memcache/cache.php b/lib/memcache/cache.php index 331c689f065..b9e0c2249ac 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 00000000000..1926582aa5c --- /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(); + } +} -- 2.39.5