class ClassLoader {
private $namespace;
private $path;
private $namespaceSeparator = '\\';
private $fileExtension = '.php';
public function __construct($namespace=null, $path=null) {
$this->namespace = $namespace;
$this->path = $path;
}
public function setNamespace($namespace) {
$this->namespace = $namespace;
}
public function getNamespace() {
return $this->namespace;
}
public function setPath($path) {
$this->path = $path;
}
public function getPath() {
return $this->path;
}
public function setNamespaceSeparator($namespaceSeparator) {
$this->namespaceSeparator = $namespaceSeparator;
}
public function getNamespaceSeparator() {
return $this->namespaceSeparator;
}
public function setFileExtension($fileExtension) {
$this->fileExtension = $fileExtension;
}
public function register() {
spl_autoload_register(array($this, 'loadClass'));
}
public function loadClass($className) {
if ($this->namespace !== null && strpos($className, $this->namespace.$this->namespaceSeparator) !== 0) {
return false;
}
require_once ($this->path !== null ? $this->path.DIRECTORY_SEPARATOR : '')
. str_replace($this->namespaceSeparator, DIRECTORY_SEPARATOR, $className)
. $this->fileExtension;
return true;
}
}
?>