From a7b7f900cf5b3e7899e84c550fcc7d0c00e8db70 Mon Sep 17 00:00:00 2001 From: Baldur Rensch Date: Mon, 16 Jul 2012 09:56:17 -0700 Subject: [PATCH] Fixed an issue with lookup of namespaces in UniversalLoader The problem occured when you have two namespaces, such as: name\ named\ In this case order matters, since when you use named\foo, it will try to load name\foo which is wrong. --- src/Opl/Autoloader/UniversalLoader.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Opl/Autoloader/UniversalLoader.php b/src/Opl/Autoloader/UniversalLoader.php index 5e677b2..0419530 100644 --- a/src/Opl/Autoloader/UniversalLoader.php +++ b/src/Opl/Autoloader/UniversalLoader.php @@ -194,15 +194,16 @@ public function loadClass($className) foreach($this->namespaces as $namespace => $path) { - if(0 === strpos($className, $namespace)) + if(0 === strpos($className, $namespace . $this->namespaceSeparator)) { $rest = strrchr($className, $this->namespaceSeparator); $replacement = str_replace($this->namespaceSeparator, '/', substr($className, 0, strlen($className) - strlen($rest))). str_replace(array('_', $this->namespaceSeparator), '/', $rest); require($path.$replacement.$this->extensions[$namespace]); + return true; - } + } } return false; } // end loadClass();