<?php
namespace framework\classes;
class classloader{
private $root = "./";
private $pathes=null;
public function __construct($root=null,array $pathes=null)
{
if(!is_null($root)) {
$this->root =$root;
}
if(!is_null($pathes)) {
$this->pathes=$pathes;
}
}
public function register ()
{
spl_autoload_register (array($this,"load"));
}
public function unregister()
{
spl_autoload_unregister(array($this,"load"));
}
private function prepare($class)
{
if(!is_null($this->pathes))
{
$file=$this->root . str_replace(array_keys($this->pathes),array_values($this->pathes),$class) . ".php";
}
else
{
$file=$this->root . str_replace(array("\\","_"),"/",$class);
}
return $file;
}
private function load($class)
{
$file=$this->prepare($class);
if(file_exists($file))
{
require $file;
}
}
}