php namespace framework classes class classloader private root private

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?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;
}
}
}