tp5完整加载执行流程——thinkphp5 框架

在这里插入图片描述

1,入口文件(tp5\public\index.php)

作用:
        	1)定义目录常量
        	2)加载框架引导目录

2.加载框架引导文件(tp5\thinkphp\start.php)

作用:
        1)引导基础文件
        2)对应用进行运转

3.加载框架基础引导文件(tp5\thinkphp\base.php)

作用:
    	1)加载系统常量
    	2)引入loader类(tp5\thinkphp\library\think\loader.php)
    	3)引入环境变量
    	4)注册自动记载机制
    	5)注册异常处理机制
    	6)记载管理配置(tp5\thinkphp\convention.php)

4.运行应用(tp5\thinkphp\library\think\App.php)下的run方法

第一步:加载当前控制器中的 initCommon()方法
    第二步:加载当前控制器中的init()方法
    	1)加载各种配置文件
    	2)加载公共文件加载语言包
    第三步:设置时区
    第四步:加载当前控制器routeCheck()方法--路由检测
    第五步:调用控制器中的exec方法
    			根据用户请求进行分发处理
    第六步:根据不同请求类型加载对应文件module方法
    			加载到对应的控制器和对应的方法

5.响应输出

输出框架目录常量
    echo THINK_PATH."----框架系统目录 </BR>";  // 

    echo ROOT_PATH."----框架应用根目录</BR>";  // 

    echo APP_PATH."----应用目录(默认为application)</BR>";  // 

    echo CONF_PATH."----配置目录(默认为APP_PATH)</BR>";  // 

    echo LIB_PATH."----系统类库目录(默认为 THINK_PATH.'library/')</BR>";  // 

    echo CORE_PATH."----系统核心类库目录 (默认为 LIB_PATH.'think/')</BR>";  // 

    echo TRAIT_PATH."----系统trait目录(默认为 LIB_PATH.'traits/')</BR>";  // 

    echo EXTEND_PATH."----扩展类库目录(默认为 ROOT_PATH . 'extend/')</BR>";  // 

    echo VENDOR_PATH."----第三方类库目录(默认为 ROOT_PATH . 'vendor/')</BR>";  // 

    echo RUNTIME_PATH."----应用运行时目录(默认为 ROOT_PATH.'runtime/')</BR>";  // 

    echo LOG_PATH."----应用日志目录 (默认为 RUNTIME_PATH.'log/')</BR>";  // 

    echo CACHE_PATH."----项目模板缓存目录(默认为 RUNTIME_PATH.'cache/')</BR>";  // 

    echo TEMP_PATH."----应用缓存目录(默认为 RUNTIME_PATH.'temp/')</BR>";  // 

猜你喜欢

转载自blog.csdn.net/jackbon8/article/details/95457315