# URL的生命周期
[TOC]
典型的URL生命周期:客户端发送请求到服务器,服务器接收到请求返回给客户端。这就是一个典型的URL生命周期的执行。
## Thinkphp的生命周期
1、入口文件->public/index.php:用户通过入口文件发送请求,它是整个应用的入口与起点。入口文件只做二件事情,定义常量和加载引导文件,不放任何业务代码。
2、引导文件->thinkphp/start.php:它执行 `加载常量` -> `加载环境变量`\-> `注册自动加载`\-> `注册错误与异常`\-> `加载惯例配置`\-> `执行应用`
3、注册自动加载:作用与将所有符合类型的类库(composer的依赖)自动进行加载,不需要我们认为去注册加载。
4、注册错误和异常机制:它主要是执行think/Error::register方法注册错误和异常处理。
5、应用初始化:严格意义上以上4部操作都是属于应用的初始化部分。
6、URL的访问检测:URL必须是PATH\_INFO格式才允许继续允许。[http://域名/入口文件/模块名/控制器名称/操作方法名称](http://xn--eqrt2g/%E5%85%A5%E5%8F%A3%E6%96%87%E4%BB%B6/%E6%A8%A1%E5%9D%97%E5%90%8D/%E6%8E%A7%E5%88%B6%E5%99%A8%E5%90%8D%E7%A7%B0/%E6%93%8D%E4%BD%9C%E6%96%B9%E6%B3%95%E5%90%8D%E7%A7%B0/%E5%8F%82%E6%95%B0%E5%90%8D/%E5%8F%82%E6%95%B0%E5%80%BC)/[参数名/参数值](http://xn--eqrt2g/%E5%85%A5%E5%8F%A3%E6%96%87%E4%BB%B6/%E6%A8%A1%E5%9D%97%E5%90%8D/%E6%8E%A7%E5%88%B6%E5%99%A8%E5%90%8D%E7%A7%B0/%E6%93%8D%E4%BD%9C%E6%96%B9%E6%B3%95%E5%90%8D%E7%A7%B0/%E5%8F%82%E6%95%B0%E5%90%8D/%E5%8F%82%E6%95%B0%E5%80%BC)
7、路由检查:如果开启了url\_route\_on参数,则首先会进行路由的检测,一但检测到了路由的匹配规则会注册到相应的URL调度。
8、分发请求:将用户的请求分发到对于的路由地址,完成业务的逻辑并返回数据。统一使用return返回数据。
9、响应输出:控制器正常返回的数据:字符串或数组,统一使用return返回数据,而不是直接的输出,这样会自动调用Response::send()方法最终返回数据输出到页面或客户端。并自动转换成default\_return\_type参数的格式。
10、响应结束:响应输出完成后,应用生命周期结束。
- 基础
- 安装PHP
- 语言基础
- 变量
- 变量操作
- 超全局数组变量
- 变量作用域
- 变量传值方式
- 常量
- 数据类型
- 运算符
- 流程控制
- 文件包含
- 错误处理
- 字符串操作
- 数组
- 函数
- 进阶
- 面向对象
- 提高
- TP
- 安装项目
- 框架基础知识
- 命令创建模块
- URL生命周期
- 路由操作
- Request请求类
- 参数绑定
- 依赖注入
- 模板操作
- 查询操作
- 添加操作
- laravel
- ☆目录结构
- CSRF攻击
- ☆路由
- ☆控制器
- ☆请求类
- ☆视图
- ☆模板继承
- ☆表单验证
- ☆DB类
- ☆模型
- ☆数据库迁移
- 类型、修饰、索引
- ☆数据填充
- ☆数据分页
- ☆session处理
- ☆中间件
- ☆缓存操作
- ☆文件上传
- ☆接口操作
- ☆扩展插件
- restful
- 工作
- 工作记录
- QQ登录
- 新浪登录
- 微信登录
- sphinx搜索
- 数据库
- MySQL
- ☆数据库操作
- ☆数据表操作
- ☆数据的操作
- 待修改
- 优化
- 存储引擎选择
- 列表类型选择
- 范式
- 慢日志查询
- 精准时间记录查询
- 计划任务 explain
- 索引
- 索与事务
- 查询缓存
- 存储过程
- 触发器
- 分区
- 分表
- sphinx
- 读写分离
- 搜索优化
- 网站静态化
- Memcache
- Mongodb
- Readis
- php使用redis
- 服务器
- Linux
- 目录结构
- 常用命令
- VIM编辑器
- 用户与用户组
- 权限管理
- 运行级别
- 网络模式
- ssh
- 软件安装
- 计划任务
- Ubuntu
- 编译PHP7.3
- 编译MySQL
- 编译Nginx
- apache虚拟机配置
- 安装composer
- Nginx
- Git