Thinkphp5.1自动加载机制

自动加载机制

  1. 注册自动加载

    1. 引入静态自动加载映射文件,autoload_static.php
      1. 根据首字母前缀将不同的加载类归类-$prefixLengthsPsr4
      2. 将命令空间映射到指定文件目录下-$prefixDirsPsr4
      3. compose下载的包文件,需要加载的文件-$files
      4. 类映射关系-$classMap
    2. 检测是否有composer自动加载的支持
    3. 注册think、traints命名空间定义
    4. 查看runtime目录下是否有类映射文件存在,加载类库映射文件
    5. 自动加载extend目录
  1. 注册错误和异常机制

    1. Log
    2. Error
    3. Exception
    4. Handle
  1. 注册类库别名

    1. app
    2. Config
    3. ......
  2. 自动加载文件机制

    1. PSR4-获取文件顶部命名空间首字母,根据首字段查找到首字母相同部分的映射类
    2. PSR4-根据查找到对应字母相同的部分映射类文件,再取得顶级命名空间与类通过字符串查找匹配顶级命名空间是否相对应
    3. PSR4-匹配中,则取文件基目录(application目录)拼接去掉顶级命令中间,含有子级命名空间的文件类名(包括文件后缀),判断是否为文件,是,则返回,include该文件
    4. 若不是文件,则去查看扩展目录(extend目录)该文件是否存在,是,则返回,include该文件
    5. PSR4-的application&extend均匹配不中,则去PSR0匹配,同样也是先去application查找是否存在,再去extend查找
    6. 若不存在则该文件映射置为false
 
 

Thinkphp5.1自动加载机制的更多相关文章

  1. thinkphp5源码剖析系列1-类的自动加载机制

    前言 tp5想必大家都不陌生,但是大部分人都停留在应用的层面,我将开启系列随笔,深入剖析tp5源码,以供大家顺利进阶.本章将从类的自动加载讲起,自动加载是tp框架的灵魂所在,也是成熟php框架的必备功 ...

  2. thinkphp5.0 自动加载

    自动加载 概述 ThinkPHP5.0真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类库的自动加载. 自动加载的实现由think\Loader类库完成,自动加载规范符 ...

  3. thinkphp5.0自动加载

    概述 ThinkPHP5.0 真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类库的自动加载. 自动加载的实现由think\Loader类库完成,自动加载规范符合PHP ...

  4. Yii2的深入学习--自动加载机制

    Yii2 的自动加载分两部分,一部分是 Composer 的自动加载机制,另一部分是 Yii2 框架自身的自动加载机制. Composer自动加载 对于库的自动加载信息,Composer 生成了一个  ...

  5. Yii2的深入学习--自动加载机制(转)

    Yii2 的自动加载分两部分,一部分是 Composer 的自动加载机制,另一部分是 Yii2 框架自身的自动加载机制. Composer自动加载 对于库的自动加载信息,Composer 生成了一个  ...

  6. 说说PHP的autoLoad自动加载机制

    __autoload的使用方法1: 最经常使用的就是这种方法,根据类名,找出类文件,然后require_one 复制代码 代码如下:function __autoload($class_name) { ...

  7. PHP 命名空间与自动加载机制介绍

    include 和 require 是PHP中引入文件的两个基本方法.在小规模开发中直接使用 include 和 require 没哟什么不妥,但在大型项目中会造成大量的 include 和 requ ...

  8. PHP autoload与spl_autoload自动加载机制的深入理解

    PHP autoload与spl_autoload自动加载机制的深入理解 作者: 字体:[增加 减小] 类型:转载 时间:2013-06-05我要评论 本篇文章是对PHP中的autoload与spl_ ...

  9. Atitit. 木马病毒的外部class自动加载机制------加载class的方法总结

    Atitit. 木马病毒的外部class自动加载机制------加载class的方法总结 Atitit.java load class methods 1. 动态加载jar文件和class文件. 1 ...

随机推荐

  1. 新產品SWOT分析實例

    推出新产品需要解决四个行销支柱: 价格 产品 促销 销售地点 要分析这些方面,请检查您的优势.劣势.机会和威胁,以帮助您在运行第一个广告或举行第一次促销之前将风险降至最低,并最大限度地利用资源.SWO ...

  2. [对对子队]会议记录5.27(Scrum Meeting12)

    今天已完成的工作 朱俊豪 ​ 工作内容:寻找电池模型和BGM,修改关卡选择场景 ​ 相关issue:优化初步导出版本 ​ 相关签入:perf:地图界面优化 feat:更新系列资源(星星,大电池) 何瑞 ...

  3. Codeforces Round #573 (Div. 2) D题题解

    一.题目 ​ Tokitsukaze, CSL and Stone Game ​ Tokitsukaze和CSL正在玩一些石头游戏. ​ 一开始,有n堆的石头,第i堆石头数记为 \(a_i\),两人轮 ...

  4. Photoshop教程,视频MP4格式转换为GIF格式

    转自百度问题 https://zhidao.baidu.com/question/1497485136643778259.html Adobe PhotoShop软件的最bai新du本是可以编辑视zh ...

  5. oracle物化视图创建及删除

    --删除物化表的日志表 DROP MATERIALIZED VIEW LOG ON 表名; --为将要创建物化视图的表添加带主键的日志表 CREATE MATERIALIZED VIEW LOG ON ...

  6. [转]DDR内存条rank的概念和区分

    1:什么是RANK? 答:CPU与内存之间的接口位宽是64bit,也就意味着CPU在一个时钟周期内会向内存发送或从内存读取64bit的数据.可是,单个内存颗粒的位宽仅有4bit.8bit或16bit, ...

  7. 翻转子串 牛客网 程序员面试金典 C++ Python

    反转子串 牛客网 程序员面试金典 C++ Python 题目描述 假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串.请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查 ...

  8. cf17B Hierarchy(额,,,水)

    题意: Nick's company employed n people. Now Nick needs to build a tree hierarchy of «supervisor-surbod ...

  9. [WPF] 使用三种方式实现弧形进度条

    1. 需求 前天看到有人问弧形进度条怎么做,我模仿了一下,成果如下图所示: 当时我第一反应是可以用 Microsoft.Toolkit.Uwp.UI.Controls 里的 RadialGauge 实 ...

  10. 更优于 Shellinabox 的 web shell 工具 -- ttyd

    ttyd 是一个运行在服务端,客户端通过web浏览器访问从而连接后台 tty (pts伪终端)接口的程序,把 shell 终端搬到 web 浏览器中. WebSocket WebSocket 是 HT ...