之前没怎么了解过,但用过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 输出内容
还有很多细节没讲出来,先大概记录下
前端视图输出的流程没开始看,因为大部分用的都是接口。