首页 > 作文

Composer 实现自动加载原理

更新时间:2023-04-08 11:09:06 阅读: 评论:0

简介

一般在框架中都会用到compor 工具, 用它来管理依赖。其中 compor 有类的自动加载机制,可以加载 compor 下载的库中的所有的类文件。那么 compor 的自动加载机制是怎么实现的呢?

compor 自动加载原理

以在 laravel 框架中为例:

1. 首先在入口文件(/public/index.php)中引入了 autoload.php

```require __dir__.'/../vendor/autoload.php';```

  

2. 我们看看 autoload.php 的内容

```require_once __dir__ . '/compor/autoload_real.php';return comporautoloaderinit1215780529014c2b50a6fca7ce889273::getloader();```

  

3. 我们再看看 autoload_real.php 的内容

```<?php// autoload_real.php @generated by comporclass comporautoloaderinit1215780529014c2b50a6fca7ce889273{    private static $loader;    public static function lo汉弗莱爵士adclassloader($class)    {        if ('compor\autoload\classloader' === $class) {            require __dir__ . '/classloader.php';        }    }    public static function getloader()    {        if (null !== lf::$loader) {            return lf::$loader;        }        spl_autoload_register(array('comporautoloaderinit1215780529014c2b50a6fca7ce889273', 'loadclassloader'), true, true);        lf::$loader = $loader = new \compor\autoload\classloader();        spl_autoload_unregister(array('comporautoloaderinit1215780529014c2b50a6fca7ce889273', 'loadclassloader'));        $ustaticloader = php_version_id >= 50600 && !defined('hhvm_version') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());        if ($ustaticloader) {            require_once __dir__ . '/autoload_static.php';            call_ur_func(\compor\autoload\comporstaticinit1215780529014c2b50a6fca7ce889273::getinitializer($loader));        } el {            $map = require __dir__ . '/autoload_namespaces.php';            foreach ($map as $namespace => $path) {                $loader->t($namespace, $path);            }            $map = require __dir__ . '/autoload_psr4.php';      重阳节话语发朋友圈短句      foreach ($map as $近视眼镜镜片namespace => $path) {                $loader->tpsr4($namespace, $path);            }            $classmap = require __dir__ . '/autoload_classmap.php';            if ($classmap) {         杜甫代表作       $loader->addclassmap($classmap);            }        }        $loader->register(true);        if ($ustaticloader) {            $includefiles = compor\autoload\comporstaticinit1215780529014c2b50a6fca7ce889273::$files;        } el {            $includefiles = require __dir__ . '/autoload_files.php';        }        foreach ($includefiles as $fileidentifier => $file) {            comporrequire1215780529014c2b50a6fca7ce889273($fileidentifier, $file);        }        return $loader;    }}function comporrequire1215780529014c2b50a6fca7ce889273($fileiden穿越架空小说tifier, $file){    if (empty($globals['__compor_autoload_files'][$fileidentifier])) {        require $file;        $globals['__compor_autoload_files'][$fileidentifier] = true;    }}```

  

可以看出这一段是 compor 自动加载的重点,首先在 autoload.php 中调用

comporautoloaderinit1215780529014c2b50a6fca7ce889273::getloader () 方法,getloader () 首先判断当前

本文发布于:2023-04-08 11:09:05,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/3363347cb1205a76c005082303404d40.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Composer 实现自动加载原理.doc

本文 PDF 下载地址:Composer 实现自动加载原理.pdf

下一篇:返回列表
标签:自动加载   汉弗莱   框架   机制
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图