From 19cfe74bf5d74c6f761513baf60da9ef7945f30e Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
Date: Tue, 7 May 2013 22:19:00 +0200
Subject: [PATCH] Add per-autoloader classPath

---
 lib/autoloader.php | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/lib/autoloader.php b/lib/autoloader.php
index 27052e60a7..091c4de967 100644
--- a/lib/autoloader.php
+++ b/lib/autoloader.php
@@ -9,13 +9,34 @@
 namespace OC;
 
 class Autoloader {
+	private $classPaths = array();
+
+	/**
+	 * Add a custom classpath to the autoloader
+	 *
+	 * @param string $class
+	 * @param string $path
+	 */
+	public function registerClass($class, $path) {
+		$this->classPaths[$class] = $path;
+	}
+
+	/**
+	 * Load the specified class
+	 *
+	 * @param string $class
+	 * @return bool
+	 */
 	public function load($class) {
 		$class = trim($class, '\\');
 
-		if (array_key_exists($class, \OC::$CLASSPATH)) {
+		if (array_key_exists($class, $this->classPaths)) {
+			$path = $this->classPaths[$class];
+		} else if (array_key_exists($class, \OC::$CLASSPATH)) {
 			$path = \OC::$CLASSPATH[$class];
-			/** @TODO: Remove this when necessary
-			Remove "apps/" from inclusion path for smooth migration to mutli app dir
+			/**
+			 * @TODO: Remove this when necessary
+			 * Remove "apps/" from inclusion path for smooth migration to mutli app dir
 			 */
 			if (strpos($path, 'apps/') === 0) {
 				\OC_Log::write('core', 'include path for class "' . $class . '" starts with "apps/"', \OC_Log::DEBUG);
-- 
GitLab