ThinkPHP5学习总结4——生命周期:从发出请求到响应完成

TP5生命周期

1、入口文件

(1)文件名:index.php
(2)位置:public/index.php
(3)用户通过入口文件,发起服务请求,是整个应用的入口与七点;
(4)任务:定义常量,加载引导文件,不要放任何业务处理代码;
(5)代码:

2、引导文件

(1)文件名:start.php
(2)位置:thinkphp/start.php
(3)执行:

3、注册自动加载

(1)类方法:Loader::register();
(2)作用:将所有符合规范的类库(包括Composer依赖加载的第三方类库)自动加载;
(3)执行:

4、注册错误和异常机制

执行Error::register()注册错误和异常处理机制。

5、应用初始化

严格来讲,1-4步骤都可以算作应用初始化部分:

6、URL访问检测

URL必须是PATH_INFO格式才允许继续运行。
(1)PATH_INFO标准格式:
http(s)😕/域名/index.php/模块名/控制器名/操作名/参数键值对
举例:http://tp5.com/index.php/index/user/add/id/10/name/peter
(2)PATH_INFO兼容格式:
http(s)😕/域名/index.php?s=/模块名/控制器名/操作名&参数键值对
举例:http://tp5.com/index.php?s=index/user/add&id=10&name=peter

7、路由检测

(1)如果开启了url_route_on参数,则首先进行URL路由检测;
(2)一旦检测到匹配路由,根据路由规则会注册到相应的URL调度;
(3)TP5支持路由规则如下:
         路由到模块/控制器/操作;(默认路由模式,如果关闭路由或者路由检测无效则执行该模式)
         路由到外部重定向地址;
         路由到控制器方法;
         路由到闭包函数;
         路由到类的方法;

8、分发请求

(1)将用户请求分发到对应的路由地址,完成应用的业务逻辑并但会数据;
(2)统一使用return返回数据,不要使用echo直接输出;
(3)如非必要,请不要使用exit或者die中断执行;
(4)分发请求支持TP5的五种路由地址模式:
         路由到模块/控制器/操作;
         路由到外部重定向地址;
         路由到控制器方法;
         路由到闭包函数;
         路由到类的方法;

9、响应输出

(1)控制器正常返回的数据通常是:字符串(String)或数组(Array)格式;
(2)统一使用return返回数据,而不是直接输出,这样可以自动调用Response::send()方法将最终的返回数据输出到页面或者客户端,并自动转换成default_return_type参数配置的格式(XML,JSON等)。

10、应用结束

(1)响应输出完成后,应用生命周期基本结束,可以写日志报告了;
(2)日志包括2个部分:用户调试输出和系统自动生成;
(3)日志在应用结束后,自动写入。

posted @ 2020-04-25 10:55  风意不止  阅读(328)  评论(0编辑  收藏  举报