Exemple #1
0
 /**
  * 自动加载类
  * 这个函数不能抛出异常,否则无法充分利用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;
     }
 }