Added autoloading of base namespace classes

This commit is contained in:
Shoghi Cervantes 2014-07-01 23:34:24 +02:00
parent 75d2409a7c
commit 6c116678d7
3 changed files with 11 additions and 14 deletions

View File

@ -89,21 +89,11 @@ namespace pocketmine {
require_once(\pocketmine\PATH . "src/spl/SplClassLoader.php"); 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 = new \SplClassLoader();
$autoloader->add("pocketmine", array( $autoloader->setMode(\SplAutoloader::MODE_DEBUG);
$autoloader->add("pocketmine", [
\pocketmine\PATH . "src" \pocketmine\PATH . "src"
)); ]);
$autoloader->register(true); $autoloader->register(true);
if(!class_exists("raklib\\RakLib", false)){ if(!class_exists("raklib\\RakLib", false)){

View File

@ -52,7 +52,6 @@ class GenerationThread extends \Thread{
$this->loader = $loader; $this->loader = $loader;
$this->logger = $logger; $this->logger = $logger;
$loadPaths = []; $loadPaths = [];
$this->addDependency($loadPaths, new \ReflectionClass($this->logger));
$this->addDependency($loadPaths, new \ReflectionClass($this->loader)); $this->addDependency($loadPaths, new \ReflectionClass($this->loader));
$this->loadPaths = array_reverse($loadPaths); $this->loadPaths = array_reverse($loadPaths);

View File

@ -141,6 +141,14 @@ class SplClassLoader implements SplAutoloader{
public function load($resourceName){ public function load($resourceName){
$resourceAbsolutePath = $this->getResourceAbsolutePath($resourceName); $resourceAbsolutePath = $this->getResourceAbsolutePath($resourceName);
if($resourceAbsolutePath == ""){ 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( throw new \RuntimeException(
sprintf('Autoloader couldn\'t find a file to include for %s', $resourceName) sprintf('Autoloader couldn\'t find a file to include for %s', $resourceName)
); );