/** * 自动加载类 * 这个函数不能抛出异常,否则无法充分利用SPL对autoload_functions()中的自动加载函数表的遍历功能 * @param string $class - The full class name of a Leb component. * @return boolean true 表示类成功加载,false 表示类没加载成功,需要继续其他的autoload函数 * @throws no throws */ public static function autoload($class) { if (class_exists($class, false) || interface_exists($class, false)) { return true; } $file = ''; if (isset(self::$_corePath[$class])) { $file = dirname(__FILE__) . self::$_corePath[$class]; } elseif (isset(self::$_corePath['Leb_' . $class])) { $file = dirname(__FILE__) . self::$_corePath['Leb_' . $class]; } elseif (false !== strpos($class, '\\')) { $file = strtolower(str_replace('\\', _DS_, $class)) . '.php'; } elseif ($file = explode('_', $class)) { if ('Leb' == $file[0]) { array_shift($file); } elseif ('Smarty' == $file[0]) { return true; } $file = implode(_DS_, $file) . '.php'; !file_exists($file) && ($file = strtolower($file)); } include_once $file; if (class_exists($class, false) || interface_exists($class, false)) { return class_exists($class, false) || interface_exists($class, false); } elseif ($obj = Leb_Model::import($class, Slae::app()->router->getApp(), true)) { return false != $obj; } elseif ($obj = Leb_Form::import($class, Slae::app()->router->getApp(), false)) { return false != $obj; } else { return false; } }