ThinkPHP5.1.x 框架源码分析 (一) [框架的灵魂] - 类的自动加载初始

框架的灵魂,类的自动加载

为什么说是框架灵魂呢,一般框架都会有类的自动加载,当引入文件很多的时候,就会需要用到。这一个也是很多人想去阅读源码时卡住的点

源码阅读

  1. 打开到入口文件 ../public/index.php 会看到这一段代码,此代码加载了 base.php 的核心文件
    // 加载基础文件 [ ../public/index.php]
    require __DIR__ . '/../thinkphp/base.php';
  2. base.php 中载入了一个 ThinkPHP团队自己封装的底层基础类库。这个类库就是需要我们深入了解的 Loader 类。在载入后立即调用了Loaderregister,并且下一句做好了Error错误处理
    // 载入Loader类 [ ../thinkphp/base.php]
    require __DIR__ . '/library/think/Loader.php';
    // 注册自动加载
    Loader::register();
    // 注册错误和异常处理机制
    Error::register();
  3. Loader.php 中的 也就是 register 方法中使用了 spl_autoload_register,这种自动注册的加载方式是很多框架都会有的,比如 Yii 这些。每一个框架实现的第一步都是类的自动加载
    // 注册系统自动加载
    spl_autoload_register($autoload ?: 'think\\Loader::autoload', true, true);

    大家加油!
    上一章: 如何优雅的分析ThinkPHP框架源码
    下一章: ThinkPHP5.1.x 框架源码分析 (二) [框架的灵魂] - 自动加载 spl_autoload_register 初识与了解

讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!