php框架tp5工作流程,tp5框架流程

之前没怎么了解过,但用过TP3.2.网上查了下说是区别很大,特此记录下。

流程:

1.入口文件默认是 public目录下的index.php

// 定义应用目录

define('APP_PATH', __DIR__ . '/../application/');

// 加载框架引导文件

require __DIR__ . '/../thinkphp/start.php';

2.加载 thinkphp/base.php

定义版本号,定义常用的常量,加载convention.php配置文件,加载自动加载类,加入了 composer模式

3.有了自动加载类后就开始执行 APP::run()

4.初始话网络请求对象 Request::instance();

5.初始话配置文件,同时加载模块配置 application/config.php

6.加载额外的应用配置 (如果有配置的话)app_status

7.添加默认钩子(tags.php)

return [

// 应用初始化

'app_init' => [],

// 应用开始

'app_begin' => [],

// 模块初始化

'module_init' => [],

// 操作开始执行

'action_begin' => [],

// 视图内容过滤

'view_filter' => [],

// 日志写入

'log_write' => [],

// 应用结束

'app_end' => [],

];

8.加载公共配置文件 默认是 application/common.php 可以写自己的公共方法(标准)

9.加载语言包

10.判断是否有自定义调度内容(app_dispatch 的钩子)如果有则执行,默认是空的

11.递归生成路由表

12.执行 钩子(Hook::listen('app_begin',$dispatch); // $dispatch是当前的路由数组 依次执行

13.检查缓存

14.开始创建 控制器对象并执行,返回 Response对象

15.执行 对象 send()方法 // echo 输出内容

还有很多细节没讲出来,先大概记录下

前端视图输出的流程没开始看,因为大部分用的都是接口。

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

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

相关文章

有移动规则2

import org.robochina.airobot.tank.*; import org.robochina.math.*; import java.awt.geom.*; import java.util.*;/*** 这个类对应一个机器人,根据需要实现相应的Action处理函数,* 就可以订制自己的机器人。*/ public class Text extends SimpleRobot…

Troubleshooting(三):网络

2019独角兽企业重金招聘Python工程师标准>>> 前言 在 Troubleshooting 过程中,检查完进程信息后,接下来就是排查网络情况的时候了,初略翻过《TCP/IP 详解卷一:协议》这本书,简直跟看《深入理解 Linux 内核》…

SqlServer 备份还原教程

看了众多教程,自己也写个增强记忆,错误地方麻烦指出。 ———————————————————————-备份——————————————————————– 1.打开数据库,成功连接 2.找到要备份的数据库,图中演示备份数据库te…

php通过实现excel导入,php实现excel导入数据

表单页面 if($_POST [import]"导入数据 "){$leadExcel$_POST[leadExcel];//echo $leadExcel;die;if($leadExcel "true"){//echo "OK";die();//获取上传的文件名$filename $_FILES[inputExcel][name];//上传到服务器上的临时文件名$tmp_name $…

深入理解计算机系统----读书笔记

第二部分 信息的表示和处理 信息存储: 二进制(0101001), 八进制,十六进制(0x32FD) 字(word size)指明整数和指针数据的标称大小(normal size)&…

FiddlerScript-常用总结

没有用过Fiddler的人应该对FiddlerScript没啥感触,我是真心觉得FiddlerScript对测试有一定的帮助哈。在web前端开发过程中,Fiddler是最常用的一款调试工具,那对于测试来说,对测试来说也是一大利器。在大多数情况下,通过…

OpenStack-Zun 使用

Zun组件简介 Zun是Openstack中提供容器管理服务的组件,于2016年6月建立。Zun的目标是提供统一的Openstack API用于启动和管理容器,支持多种容器技术。Zun原来称为Higgins,后改名为Zun。 Zun计划支持多种容器技术,Docker&#xff0…

【优雅代码】深入浅出 妙用Javascript中apply、call、bind

这篇文章实在是很难下笔,因为网上相关文章不胜枚举。 巧合的是前些天看到阮老师的一篇文章的一句话: “对我来说,博客首先是一种知识管理工具,其次才是传播工具。我的技术文章,主要用来整理我还不懂的知识。我只写那些…

PHP笔记随笔

1.CSS控制页面文字不能复制: body{-webkit-user-select:none;} 2.【php过滤汉字和非汉字】 $sc"aaad....##--__i汉字过滤"; //iconv("UTF-8","GB2312",$sc);utf-8转码 echo $temperegi_replace("[^\x80-\xff]",""…

qt linux 添加库文件路径,Linux下Qt调用共享库文件.so

jvm--4垃圾收集6. 垃圾收集GC (1)当需要排查各种内存溢出,内存泄漏等问题,当GC成为系统达到更高性能的瓶颈时,我们就需要对这些自动化的GC进行监控和调节. (2)PC计数器.本地方法栈.虚拟机栈,随方法或者线 ...GET和POSTAjax与Comet 1. Ajax Asynchronous Javascriptxml :能够向服…

js进阶 14-8 表单序列化函数serializeArray()和serialize()的区别是什么

js进阶 14-8 表单序列化函数serializeArray()和serialize()的区别是什么 一、总结 一句话总结:两者都是对表单进行序列化,serializeArray()返回的是json对象,serialize()返回的是json形式的字符串,使用起来都是一样的 1、$&#x…

HDU 2842 Chinese Rings(矩阵高速功率+递归)

职务地址:HDU 2842 这个游戏是一个九连环的游戏。 如果当前要卸下前n个环。由于要满足前n-2个都卸下,所以要先把前n-2个卸下。须要f(n-2)次。然后把第n个卸下须要1次,然后这时候要卸下第n-1个。然后此时前n-2个都已经被卸下了。这时候把前n-2…

硬链接与软连接

linux系统硬链接和软连接: 1文件都由文件名和数据组成,在linux中文件被分为两个部分:用户数据和元数据。用户数据:即文件数据块,记录真实数据的地方。元数据:文件的附加属性,记录文件的大小&…

linux 7.2中文命令,CentOS7如何支持中文显示

1.查看系统是否安装有中文语言包locale -a | grep "zh_CN" 命令含义:列出所有可用的公共语言环境的名称,包含有"zh_CN"若出现图中所示几项,那么说明系统中已经安装了语言包,不需要在安装。含义是:…

html-拖拽

html-拖拽(draggable"true")拖拽的7个事件:> 拖拽块.οndragstartfunction(){console.log("拖拽开始");}> 拖拽块.οndragfunction(){console.log("拖拽中");}> 拖拽块.οndragendfunction(){console…

大道至简

道在中国哲学中,是一个重要的概念,表示“终极真理”。此一概念,不单为哲学流派诸子百家所重视,也被宗教流派道教等所使用。大道至简是指大道理(基本原理、方法和规律)是极其简单的,简单到一两句…

别人7天乐,运维还苦逼值班?

你被点名值班了吗?或者你的朋友、隔壁七大姑八大姨的侄子被点名值班了吗? 国庆将至,大家都开始研究各种度假攻略了,国内游、国外游、地球游、外星游。。。然而总有一票人,默默地职守着 -- tIT 公司运营支撑组/运维组。…

【常用损失函数】

一、Smooth L1 Loss 1.公式: 2.原因: L1损失使权值稀疏但是导数不连续,L2损失导数连续可以防止过拟合但对噪声不够鲁棒,分段结合两者优势。 二、Focal Loss 1.公式: 2.作用: 使得正负样本平衡的同时&#x…

ORA-01940: cannot drop a user that is currently connected解决方法

我们在删除数据库用户时候会碰到如下错误 SQL> DROP USER sys_xj cascade; DROP USER sys_xj cascade*ERROR at line 1:ORA-01940: cannot drop a user that is currently connected 解决方法: 1.查询出还在连接的此用户会话进程 SQL> SELECT SID,SERIAL# FR…

实现对象克隆

实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆,代码如下 package com.lovo; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; i…