之前沒怎么了解過,但用過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 輸出內容
還有很多細節沒講出來,先大概記錄下
前端視圖輸出的流程沒開始看,因為大部分用的都是接口。