tp5.1框架初始化流程学习

27 篇文章 0 订阅
10 篇文章 0 订阅

tp5.1框架初始化流程学习

tp5.1的入口文件(public/index.php

主要完成框架的初始化与应用启动,等待用户请求,然后进行调度处理

入口文件代码

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------

// [ 应用入口文件 ]
namespace think;

// 加载基础文件
require __DIR__ . '/../thinkphp/base.php';

// 支持事先使用静态方法设置Request对象和Config对象

// 执行应用并响应
Container::get('app')->run()->send();

流程图


初始化之前的操作

在入口文件引入了base.php,该文件负责的是基础环境的搭建

在base文件中引入了Loader类(自动加载类),调用了Error类

base.php的作用

引入Loader类,实现注册自动加载

使用Error类实现注册错误和异常处理机制

实现日志接口(这块具体还不是太理解)

注册核心类到容器

注册核心类的静态代理

注册类库别名

加载惯例配置文件

配置文件

加载composer的自动加载文件

    

Loader.php的作用

  • 注册系统自动加载机制
  • 实现Composer自动加载
  • 注册think和traits命名空间
  • 加载类库映射文件
  • 自动加载extend目录

初始化的操作

通过容器类的get方法获取app.php的实例,调用app的run()方法实现应用的初始化和运行

run()方法会调用initialize方法

initialize方法——加载与应用相关的各类配置信息,与此同时调用init方法

init方法——初始化应用的根目录,并加载根目录下的配置文件

相关配置文件

行为扩展 /app/tags.php.
公共内容文件 /app/common.php
助手函数文件 /app/helper.php
容器对象注册文件 /app/provider.php
读取配置目录下的配置文件 /app/config/文件名.php。


  1. PHP_OS——获取当前操作系统名称
  2. DIRECTORY_SEPARATOR——PHP加载的文件分隔符

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值