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