From 6c116678d70651ea05d83023a483440f71fa7875 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Tue, 1 Jul 2014 23:34:24 +0200 Subject: [PATCH] Added autoloading of base namespace classes --- src/pocketmine/PocketMine.php | 16 +++------------- .../level/generator/GenerationThread.php | 1 - src/spl/SplClassLoader.php | 8 ++++++++ 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/pocketmine/PocketMine.php b/src/pocketmine/PocketMine.php index 212f4e72d..b860b519e 100644 --- a/src/pocketmine/PocketMine.php +++ b/src/pocketmine/PocketMine.php @@ -89,21 +89,11 @@ namespace pocketmine { require_once(\pocketmine\PATH . "src/spl/SplClassLoader.php"); } - if(!class_exists("Logger", false)){ - require_once(\pocketmine\PATH . "src/spl/Logger.php"); - require_once(\pocketmine\PATH . "src/spl/LogLevel.php"); - } - - if(!class_exists("ThreadedLogger", false)){ - require_once(\pocketmine\PATH . "src/spl/ThreadedLoggerAttachment.php"); - require_once(\pocketmine\PATH . "src/spl/ThreadedLogger.php"); - } - - $autoloader = new \SplClassLoader(); - $autoloader->add("pocketmine", array( + $autoloader->setMode(\SplAutoloader::MODE_DEBUG); + $autoloader->add("pocketmine", [ \pocketmine\PATH . "src" - )); + ]); $autoloader->register(true); if(!class_exists("raklib\\RakLib", false)){ diff --git a/src/pocketmine/level/generator/GenerationThread.php b/src/pocketmine/level/generator/GenerationThread.php index 84aa9f12c..d9ae29816 100644 --- a/src/pocketmine/level/generator/GenerationThread.php +++ b/src/pocketmine/level/generator/GenerationThread.php @@ -52,7 +52,6 @@ class GenerationThread extends \Thread{ $this->loader = $loader; $this->logger = $logger; $loadPaths = []; - $this->addDependency($loadPaths, new \ReflectionClass($this->logger)); $this->addDependency($loadPaths, new \ReflectionClass($this->loader)); $this->loadPaths = array_reverse($loadPaths); diff --git a/src/spl/SplClassLoader.php b/src/spl/SplClassLoader.php index 5bd8b7f28..698d45287 100644 --- a/src/spl/SplClassLoader.php +++ b/src/spl/SplClassLoader.php @@ -141,6 +141,14 @@ class SplClassLoader implements SplAutoloader{ public function load($resourceName){ $resourceAbsolutePath = $this->getResourceAbsolutePath($resourceName); if($resourceAbsolutePath == ""){ + if($resourceName{0} !== "\\"){ + if(file_exists(dirname(__FILE__) ."/" . $resourceName . $this->fileExtension)){ + require dirname(__FILE__) ."/" . $resourceName . $this->fileExtension; + if($this->isResourceDeclared($resourceName)){ + return; + } + } + } throw new \RuntimeException( sprintf('Autoloader couldn\'t find a file to include for %s', $resourceName) );