rpicms

A CMS for the Raspberry Pi
git clone git://archive.git.mtrnord.blog/RpicmsTeam/rpicms.git
Log | Files | Refs | README | LICENSE

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'));