*/ class AAM_Autoloader { /** * * @var type */ protected static $classmap = array(); /** * * @param type $classname * @param type $filepath */ public static function add($classname, $filepath) { self::$classmap[$classname] = $filepath; } /** * Autoloader for project Advanced Access Manager * * Try to load a class if prefix is AAM_ * * @param string $classname */ public static function load($classname) { if (array_key_exists($classname, self::$classmap)) { $filename = self::$classmap[$classname]; } else { $chunks = explode('_', $classname); $prefix = array_shift($chunks); if ($prefix === 'AAM') { $base_path = dirname(__FILE__) . '/Application'; $filename = $base_path . '/' . implode('/', $chunks) . '.php'; } } if (!empty($filename) && file_exists($filename)) { require($filename); } } /** * Register autoloader * * @return void * * @access public */ public static function register() { spl_autoload_register('AAM_Autoloader::load'); } }