资讯专栏INFORMATION COLUMN

探究Laravel4.2加载(一)— autoload

junbaor / 637人阅读

摘要:以手上的为准,本篇只看自动加载部分。入口文件在,打开看看。第三个参数是,将自己的自动加载函数注册到队列之首。

以手上的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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21461.html

相关文章

  • PHP 之 Laravel 框架安装及相关开源软件

    摘要:被称为简洁优雅的开发框架,但第一次接触此框架的人有不少都卡在了安装上,其实在下只需要很简单的几步就可以搞定,这里我们以下的环境为例。 Laravel 被称为简洁、优雅的PHP开发框架,但第一次接触此框架的人有不少都卡在了安装上,其实在 Linux 下只需要很简单的几步就可以搞定,这里我们以 CentOS 下 PHP + Nginx + Mysql 的环境为例。 首先需要了解 Larav...

    fox_soyoung 评论0 收藏0
  • PHP autoload 机制详解

    摘要:但现在问题来了,如果在一个系统的实现中,如果需要使用很多其它的类库,这些类库可能是由不同的开发人员编写的,其类名与实际的磁盘文件的映射规则不尽相同。 PHP在魔术函数__autoload()方法出现以前,如果你要在一个程序文件中实例化100个对象,那么你必须用include或者require包含进来100个类文件,或者你把这100个类定义在同一个类文件中——相信这个文件一定会非常大。但...

    psychola 评论0 收藏0
  • composer 自动加载

    摘要:自动加载是指在代码中,不需要显式地使用文件路径将类库文件包含进来,便可使用该文件中定义的类库。在里是这样进行配置的按照的规则,当试图自动加载这个时,会去寻找这个文件。最后,只要在项目中你所需要的所有类库都会在适当的时候自动载入。 Composer是PHP中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer...

    alighters 评论0 收藏0
  • Yii2中的代码自动加载机制

    摘要:中是如何实现代码的自动加载的入口脚本的以下两行代码其中的作用注册为自动加载函数。这个负责引入了一个类中的,随后立即解除注册。注册中的为自动加载函数,并利用配置文件即目录下的文件对这个自动加载函数进行了初始化。 1.基本知识 Include与require 的作用: 当一个文件被包含时,其中所包含的代码继承了 include 所在行的变量范围。从该处开始,调用文件在该行处可用的任何...

    Jaden 评论0 收藏0
  • Composer的Autoload源码实现——启动与初始化

    摘要:任务是加载类的初始化顶级命名空间与文件路径映射初始化和注册。在实际情况下可能会出现这样的情况。值得注意的是这个函数返回的是一个匿名函数,为什么呢原因就是类中的等等都是的。。。关于匿名函数的绑定功能。 前言 在开始之前,欢迎关注我自己的博客:www.leoyang90.cn 上一篇文章,我们讨论了 PHP 的自动加载原理、PHP 的命名空间、PHP 的 PSR0 与 PSR4 标准,有...

    MarvinZhang 评论0 收藏0

发表评论

0条评论

junbaor

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<