From d82c1dfcabe84709ff02ea5c13c82c573d524937 Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
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 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 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * 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();
+	}
+}
-- 
GitLab