AutoLoader.php (1111B)
1 <?php 2 class AutoLoader { 3 static private $classNames = array(); 4 /** 5 * Store the filename (sans extension) & full path of all ".php" files found 6 */ 7 public static function registerDirectory($dirName) { 8 $di = new DirectoryIterator($dirName); 9 foreach ($di as $file) { 10 if ($file->isDir() && !$file->isLink() && !$file->isDot()) { 11 // recurse into directories other than a few special ones 12 self::registerDirectory($file->getPathname()); 13 } elseif (substr($file->getFilename(), -4) === '.php') { 14 // save the class name / path of a .php file found 15 $className = substr($file->getFilename(), 0, -4); 16 AutoLoader::registerClass($className, $file->getPathname()); 17 } 18 } 19 } 20 public static function registerClass($className, $fileName) { 21 AutoLoader::$classNames[$className] = $fileName; 22 } 23 public static function loadClass($className) { 24 if (isset(AutoLoader::$classNames[$className])) { 25 require_once(AutoLoader::$classNames[$className]); 26 } 27 } 28 } 29 spl_autoload_register(array('AutoLoader', 'loadClass'));