think\Loader::autoload PHP Method

autoload() public static method

自动加载
public static autoload ( $class )
    public static function autoload($class)
    {
        // 检测命名空间别名
        if (!empty(self::$namespaceAlias)) {
            $namespace = dirname($class);
            if (isset(self::$namespaceAlias[$namespace])) {
                $original = self::$namespaceAlias[$namespace] . '\\' . basename($class);
                if (class_exists($original)) {
                    return class_alias($original, $class, false);
                }
            }
        }
        if ($file = self::findFile($class)) {
            // Win环境严格区分大小写
            if (IS_WIN && pathinfo($file, PATHINFO_FILENAME) != pathinfo(realpath($file), PATHINFO_FILENAME)) {
                return false;
            }
            __include_file($file);
            return true;
        }
    }

Usage Example

Example #1
0
 public function testAddNamespace()
 {
     Loader::addNamespace('top', __DIR__ . DS . 'loader' . DS);
     $this->assertEquals(true, Loader::autoload('top\\test\\Hello'));
 }