tp5生命周期
tp5生命周期:
入口文件-》引导文件-》注册自动加载-》
注册错误和异常机制-》应用初始化-》url访问检测-》
路由检测-》分发请求-》响应输出-》应用结束
入口文件:
文件名:index.php
位置:public/index.php;
用户通过入口文件,发送服务请求,是整个应用的入口和起点
任务:定义常量,加载引导文件,不要放任何业务处理代码
代码:define('APP_PATH'.__DIR__.'/../application/');
require __DIR__.'/../thinkphp/start.php';
引导文件:
文件名:start.php;
位置:thinkphp/start.php;
执行:加载常亮->加载环境变量->注册自动加载->注册错误与异常->加载惯例配置->执行应用
注册自动加载:
类方法:Loader::register();
作用:将所有符合规范的类库自动加载
执行流程:注册自动加载方法->注册系统命名空间->加载类库映射文件->注册composer自动加载->注册extend扩展目录
注册错误和异常机制:
执行Error::register()注册错误和异常处理机制
应用关闭方法:think\Error::appShutdown
错误处理方法:think\Error::appError
异常处理方法:think\Error::appException
应用初始化:
加载公共配置->加载公共扩展配置->加载应用状态配置->加载别名定义->加载行为定义->加载公共函数文件->注册应用命名空间->加载扩展函数文件->设置默认时区->加载系统语言包
URL访问监测:
URL必须是PATH_INFO格式踩允许进行运行。
PATH_INFO标准格式:
http://域名/index.php/(模块名)index/(控制器)user/(方法名)add/id/10/name/jack(参数键值对)
PATH_INFO兼容格式:
http://域名/index.php?s=/模块名/控制器名/方法名&参数键值对
路由检测:
路由规则:
路由到模块/控制器/方法(默认模式)
路由到外部重定向地址
路由到控制器方法
路由到闭包函数
路由到类的方法
分发请求:
将用户的请求分发到对应的路由地址,完成应用的业务逻辑并返回数据
统一使用return返回数据,不用echo直接输出、
如果非必要不要用exit或者die中断
分发请求的五种路由地址模式:
路由到模块/控制器/方法(默认模式)
路由到外部重定向地址
路由到控制器方法
路由到闭包函数
路由到类的方法
响应输出:
控制器正常返回的数据通常是String或者、Array的格式
统一使用return返回数据,不是直接输出,这样可以自动调用Response::send()方法将最终的返回数据输出到页面或者客户端。并自动转换称default_return_type参数设置的格式(xml,json等)