生命周期就是从出现到消失的过程
URL请求的生命周期
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、应用初始化
严格意义上讲,前面的内容都可算作应用初始化的部分:
6、URL访问检测
URL必须是PATH_ INFO格式才 允许继续运行。
1. PATH_ INFO标准格式:
http://域名/index.php/模块名/控制器名/操作名/参数键值对
举例: http://tp5.com/index.php/index/user/add/id/10/name/peter
3. PATH_ INFO兼容格式:
http://域名/index.php ? s=/模块名/控制器名/操作名&参数键值对
举例:http://tp5.com/index.php?s=index/user/add&id=10&name=peter
7、路由检测
1.如果开启了ur_ 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.日志包括两部分:用户调试输出和系统自动生成;
3.日志在应用结束后,自动写入。