php

thinkphp6执行流程

2023-09-22

项目目录相对为tp6

请求被统一转发到入口文件(入口文件地址为 tp6/index.php)

1、入口文件引入了composer自动载入文件类库

<php?

namespace think; 

require __DIR__ . '/../vendor/autoload.php';

上面这句就是引入了composer目录下autoload文件,就是用composer的自动加载机制,框架核心加载composer的autoload文件

(文件地址为 tp6/vendor/autoload.php')

 


2、实例化 think\App 对象 赋值给$app

<?php

$app = new App();

  

(App类文件地址为 tp6/vendor/topthink/framework/src/think/App.php')

执行App类中的__construct构造方法


3、通过$app类调用http类(web管理类)

$http = $app->http;

  

3.0 引用http类的过程如下:

(http类文件地址为 tp6/vendor/topthink/framework/src/think/Http.php')


4、http对象执行run方法,应用程序的执行开始


5、执行run方法

$response = $http->run();


6、response 执行send输出数据的操作;

(Html 类文件所在地址为 tp6/vendor/topthink/framework/src/think/response/Html.php )


7、执行 http对象中的end方法

<?php

$http->end($response);

(http类文件地址为 tp6/vendor/topthink/framework/src/think/Http.php')


8、整个程序结束

 

应用类App继承了Container容器类, 所有类的实例通过容器类进行统一管理,容器类为单例模式全局唯一;