探究Laravel42加载(一)— autoload

原创
2016-07-29 08:57:18 673浏览

以手上的4.2为准,本篇只看自动加载部分。

入口文件在:/public/index.php,打开看看。

来到 /bootstrap/autoload.php

来到 /vendor/autoload.php

终于来到 /vender/composer/autoload_real.php

 $path) {
            $loader->set($namespace, $path);
        }

        // 登记以PSR-4方式加载的类们
        $map = require __DIR__ . '/autoload_psr4.php';
        foreach ($map as $namespace => $path) {
            $loader->setPsr4($namespace, $path);
        }

        // 登记直接加载的类们
        $classMap = require __DIR__ . '/autoload_classmap.php';
        if ($classMap) {
            $loader->addClassMap($classMap);
        }
        
        // 执行加载
        $loader->register(true);

        // 加载一些文件,这些文件的目的是注册一些函数
        $includeFiles = require __DIR__ . '/autoload_files.php';
        foreach ($includeFiles as $fileIdentifier => $file) {
            // 借用下面的方法去加载
            composerRequire78fadea5a0911ad1d52c374950318f50($fileIdentifier, $file);
        }

        // 到此自动加载结束,层层跳回
        return $loader;
    }
}

function composerRequire78fadea5a0911ad1d52c374950318f50($fileIdentifier, $file)
{
    // 如果加载过了就不重复加载
    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
        require $file;
    
        // 加载过之后给个标记
        $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
    }
}

博客:http://blog.lovemydeer.com/2016/03/22/laravel4dot2-autoload.html

以上就介绍了探究Laravel42加载(一)— autoload,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。