Home >Backend Development >PHP Tutorial >PHP class automatic loading method_PHP tutorial
Before PHP5, if each PHP framework wanted to implement automatic loading of classes, they usually implemented a directory traversal according to a certain agreement. Automatically load classes or functions of all files that meet the agreed rules. Of course, the object-oriented support before PHP5 was not very good, and the use of classes was not as frequent as it is now. Let’s discuss this in detail.
PHP class automatic loading method
?
2 3 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
|
class inload { /** * Classes are automatically loaded and do not need to be called by developers * * @param string $class class file */ private function autoload( $class ) { if( empty($class) ) { throw new QException('Loaded file does not exist'.$class); } else { require _SPRING_.'/_Core/SpringMap.php'; //Frame map if(! file_exists( $source[$class]['file'] ) ) { throw new QException('Loaded file does not exist'.$class); } require $source[$class]['file']; } } /** * Register or unregister an automatic class loading method * * This method refers to Zend Framework * * @param string $class The class that provides automatic loading service * @param boolean $enabled Enable or disable the service */ private function registerAutoload($class = 'Interpreter' , $enabled = true) { if (!function_exists('spl_autoload_register')) { throw new QException('spl_autoload does not exist for this PHP installation'); } if ($enabled === true) { spl_autoload_register(array($class, 'autoload')); } else { spl_autoload_unregister(array($class, 'autoload')); } } /** * Destructor */ public function __destruct() { self::registerAutoload('Interpreter' , false); } |