aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/class_loader.php
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2013-09-19 18:29:08 +0200
committerNils Adermann <naderman@naderman.de>2013-09-19 18:29:08 +0200
commitfe36375a36ec4f816eb07b41630b6c9fa7ff12c8 (patch)
tree96e1122b07586d8802601fcfeea7d45b398b5e08 /phpBB/phpbb/class_loader.php
parentf205c4fad4c3a82cc4a47beb7f9a8025669a3acb (diff)
downloadforums-fe36375a36ec4f816eb07b41630b6c9fa7ff12c8.tar
forums-fe36375a36ec4f816eb07b41630b6c9fa7ff12c8.tar.gz
forums-fe36375a36ec4f816eb07b41630b6c9fa7ff12c8.tar.bz2
forums-fe36375a36ec4f816eb07b41630b6c9fa7ff12c8.tar.xz
forums-fe36375a36ec4f816eb07b41630b6c9fa7ff12c8.zip
[ticket/11700] Fix extension loading with namespaces
class loader now expects all classes to be prefixed with a backslash when resolving paths PHPBB3-11700
Diffstat (limited to 'phpBB/phpbb/class_loader.php')
-rw-r--r--phpBB/phpbb/class_loader.php11
1 files changed, 9 insertions, 2 deletions
diff --git a/phpBB/phpbb/class_loader.php b/phpBB/phpbb/class_loader.php
index bcd05e5853..769f28b4f1 100644
--- a/phpBB/phpbb/class_loader.php
+++ b/phpBB/phpbb/class_loader.php
@@ -55,7 +55,12 @@ class class_loader
* @param \phpbb\cache\driver\driver_interface $cache An implementation of the phpBB cache interface.
*/
public function __construct($namespace, $path, $php_ext = 'php', \phpbb\cache\driver\driver_interface $cache = null)
- {
+ {
+ if ($namespace[0] !== '\\')
+ {
+ $namespace = '\\' . $namespace;
+ }
+
$this->namespace = $namespace;
$this->path = $path;
$this->php_ext = $php_ext;
@@ -105,7 +110,8 @@ class class_loader
* Resolves a phpBB class name to a relative path which can be included.
*
* @param string $class The class name to resolve, must be in the
- * namespace the loader was constructed with
+ * namespace the loader was constructed with.
+ * Has to begin with \
* @return string|bool A relative path to the file containing the
* class or false if looking it up failed.
*/
@@ -144,6 +150,7 @@ class class_loader
*/
public function load_class($class)
{
+ $class = '\\' . $class;
if (substr($class, 0, strlen($this->namespace)) === $this->namespace)
{
$path = $this->resolve_path($class);