thinkphp的生命周期

news2024/7/6 18:48:11

1.入口文件 index.php

用户通过入口文件,发起服务请求,是整个应用的入口与七点
定义常量,加载引导文件,不要放任何业务处理代码

2.引导文件

start.php;
加载常量->加载环境变量->注册自动加载->注册错误与异常->加载管理配置->执行应用

3.注册自动加载

Loader::register();
将所有符合规范的类库(包括Composer依赖加载的第三方类库)自动加载
注册自动加载方法->注册系统命名空间->加载类库映射文件->注册composer自动加载->注册extend扩展目录

4.注册错误和异常机制

Error::register()注册错误和异常处理机制
应用关闭方法,think/Error::appShutdown
错误处理方法,think/Error::appError
异常处理机制,think/Error::appException

5.应用初始化

加载公共配置文件->加载公共扩展配置->加载应用状态配置->加载别名定义->加载行为定义->加载公共函数文件->注册应用命名空间->加载扩展函数文件->设置默认时区->加载系统语言包。

6.URL访问检测

URL必须是PATH_INFO格式才允许继续允许。
PTAH_INFO标准格式:

举例:
PATH_INFO兼容格式:

举例:http://tp5.com/index.php?s=index/user/add&id=108name=peter

7.路由检查

开启url_route_on参数,则首先进行URL检测路由机制。
一旦检测到匹配的路由机制,根据路由规则会注册到响应的URL调度;
TP5支持的路由规则
路由到模块/控制器/操作,
路由到外部重定向地址
路由到控制器方法,
路由到闭包函数,
路由到类的方法,

8.分支请求:

将用户请求分发到对应的路由地址,完成应用的业务逻辑并返回数据;
统一使用return返回数据,
分发请求支持TP5的5种路由地址模式

9.响应输出

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

10.应用结束

响应输出完成后:应用生命周期结束,可以添加日志报告:
日志包括两部分:用户调试输出和系统自动生成
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1326799.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Java (spring-boot)的课程管理系统

一、项目介绍 ​近年来,随着网络学校规模的逐渐增大,人工书写数据已经不能够处理如此庞大的数据。为了更好的适应信息时代的高效性,一个利用计算机来实现学生信息管理工作的系统将必然诞生。基于这一点,设计了一个学生信息管理系统…

2023.12.21:烧录三个led灯

.text .global _start _start: /*---------------------------------LD1------------------------------------------------*/设置GEIOE时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000A28LDR R0,0X50000A28 指定寄存器的地址LDR R1,[R0] 将寄存器数值取出来放在R1中…

7-高可用-回滚机制

事务回滚 在执行数据库SQL时,如果我们检测到事务提交冲突,那么事务中所有已执行的SQL要进行回滚,目的是防止数据库出现数据不一致。对于单库事务回滚直接使用相关SQL即可。 如果涉及分布式数据库,则要考虑使用分布式事务&#x…

Jenkins的文档翻译

官网Jenkins.io Jenkins用户文档 欢迎来到Jenkins用户文档-为那些想要使用Jenkins的现有功能和插件特性的人。如果你想通过开发自己的Jenkins插件来扩展Jenkins的功能,请参考extend Jenkins(开发者文档)。 詹金斯是什么? Jenkins是一个独立的、开源的自动化服务…

STM32-ADC模数转换器

目录 一、ADC简介 二、逐次逼近型ADC内部结构 三、STM32内部ADC转换结构 四、ADC基本结构 五、输入通道 六、转换模式 6.1单次转换,非扫描模式 6.2连续转换,非扫描模式 6.3单次转换,扫描模式 6.4连续转换,扫描模式 七、…

网线的制作集线器交换机路由器的配置--含思维导图

🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《产品经理如何画泳道图&流程图》 ⛺️ 越努力 ,越幸运 一、网线的制作 1、网线的材料有哪些? 网线 网线是一种用于传输数据信号的电缆,广泛应…

【Linux系统编程】进程的认识

介绍: 进程是程序执行的实体,可将其理解为程序。比如:当我们使用文本编辑器Notepad应用程序来编写一篇文章时,此时,Notepad应用程序就被加载到了内存中,并且它占用的资源(如内存、CPU等&#xf…

伦敦金交易内地与香港有何区别

伦敦金交易是国际银行间市场层面的现货黄黄金交易,亚洲市场的交易中心在中国香港,现在不管是香港本地还是内地的投资者,都可以在网上开户,通过香港的平台参与伦敦金交易,所得到的服务是同等的、公平的、与国际市场接轨…

在Windows上使用 Python

本文档旨在概述在 Microsoft Windows 上使用 Python 时应了解的特定于 Windows 的行为。 与大多数UNIX系统和服务不同,Windows系统没有预安装Python。多年来CPython 团队已经编译了每一个 发行版 的Windows安装程序(MSI 包),已便…

Linux 音视频SDK开发实践

一、兼容性适配处理 为什么需要兼容处理? 1、c兼容处理 主要有ABI兼容性问题,不同ubuntu系统依赖的ABI版本如下: ubuntu 18.04ubuntu 16.04ubuntu 14.04g7.55.44.8stdc版本libstdc.so.6.0.25libstdc.so.6.0.21libstdc.so.6.0.19GLIBCXXG…

【SpringBoot快速入门】(4)SpringBoot项目案例代码示例

目录 1 创建工程3 配置文件4 静态资源 之前我们已经学习的Spring、SpringMVC、Mabatis、Maven,详细讲解了Spring、SpringMVC、Mabatis整合SSM的方案和案例,上一节我们学习了SpringBoot的开发步骤、工程构建方法以及工程的快速启动,从这一节开…

JavaCV音视频开发宝典:UDP局域网组播推流,多播推流,局域网多网段推流,使用UDP方式推送TS组播流,实现UDP一对多组播

《JavaCV音视频开发宝典》专栏目录导航 《JavaCV音视频开发宝典》专栏介绍和目录 ​ 前言 在之前文章中我们已经实现rtp点到点传输JavaCV音视频开发宝典:rtp点到点音视频传输(一对一音视频直播)和rtp广播JavaCV音视频开发宝典:rtp广播方式发送TS流音视频传输(一对多音视…

私域用户标签体系|超全指南

将用户进行精准画像,搭建用户标签体系,将自己的客户分层,逐个突破。

IEEE TASLP | 联合语音识别与口音识别的解耦交互多任务学习网络

尽管联合语音识别(ASR)和口音识别(AR)训练已被证明对处理多口音场景有效,但当前的多任务ASR-AR方法忽视了任务之间的粒度差异。细粒度单元(如音素、声韵母)可用于捕获与发音相关的口音特征&…

利用阿里通义千问和Semantic Kernel,10分钟搭建大模型知识助手!

前言 **通义千问:**是阿里推出的一个超大规模的语言模型,其中参数模型Qwen-72B已经宣布开源,同时还开源了18亿参数模型Qwen-1.8B和音频大模型Qwen-Audio,至此已经开源了18亿、70亿、140亿、720亿参数的4款大语言模型,…

【QT】QGraphicsView和QGraphicsItem坐标转换

坐标转换 QGraphicsItem和QGraphicsView之间的坐标转换需要通过QGraphicsScene进行转换 QGraphicsView::mapToScene() - 视图 -> 场景QGraphicsView::mapFromScene() - 场景 -> 视图QGraphicsItem::mapToScene() - 图元 -> 场景QGraphicsItem::mapFromScene() - 场景 …

【leetcode234】回文链表Java代码讲解

12.21 234. 回文链表 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head [1,2,2,1] 输出:true示例 2: 输入&a…

【Java代码审计】URL跳转漏洞篇

【Java代码审计】URL跳转漏洞篇 1.URL跳转漏洞概述2.Java中的URL重定向3.URL跳转漏洞修复 1.URL跳转漏洞概述 通俗地说,目前很多的Web应用因为业务需要,需与内部的其他服务或者第三方的服务进行交互,这样就需要重定向的功能,由当…

上市十年 这家互联网服务平台窥见汽车市场“沧海桑田”

十年,对于一家上市公司而言意味着什么?以中概股为例,十年里的高低起伏,折射出不同公司和行业的各异命运。 新浪在2021年私有化退市,曾经名声在外的聚美优品在2020年遭遇同样命运。再往前数,还有离开美股回…

浅谈ASO优化如何应对市场竞争的挑战

随着应用市场的竞争越来越激烈,ASO优化也要为了应对各种来临的风险与机遇做出改变,提高自己的适应能力,下面小柚整理了一些思路供大家参考。 1. 深入了解目标用户需求:首先,需要深入了解目标用户的需求和痛点&#xf…