tp5生命週期:php
入口文件-》引導文件-》註冊自動加載-》thinkphp
註冊錯誤和異常機制-》應用初始化-》url訪問檢測-》json
路由檢測-》分發請求-》響應輸出-》應用結束閉包
入口文件:app
文件名:index.phpcomposer
位置:public/index.php;函數
用戶經過入口文件,發送服務請求,是整個應用的入口和起點ui
任務:定義常量,加載引導文件,不要聽任何業務處理代碼url
代碼:define('APP_PATH'.__DIR__.'/../application/');xml
require __DIR__.'/../thinkphp/start.php';
引導文件:
文件名:start.php;
位置:thinkphp/start.php;
執行:加載常亮->加載環境變量->註冊自動加載->註冊錯誤與異常->加載慣例配置->執行應用
註冊自動加載:
類方法:Loader::register();
做用:將全部符合規範的類庫自動加載
執行流程:註冊自動加載方法->註冊系統命名空間->加載類庫映射文件->註冊composer自動加載->註冊extend擴展目錄
註冊錯誤和異常機制:
執行Error::register()註冊錯誤和異常處理機制
應用關閉方法:think\Error::appShutdown
錯誤處理方法:think\Error::appError
異常處理方法:think\Error::appException
應用初始化:
加載公共配置->加載公共擴展配置->加載應用狀態配置->加載別名定義->加載行爲定義->加載公共函數文件->註冊應用命名空間->加載擴展函數文件->設置默認時區->加載系統語言包
URL訪問監測:
URL必須是PATH_INFO格式踩容許進行運行。
PATH_INFO標準格式:
http://域名/index.php/(模塊名)index/(控制器)user/(方法名)add/id/10/name/jack(參數鍵值對)
PATH_INFO兼容格式:
http://域名/index.php?s=/模塊名/控制器名/方法名&參數鍵值對
路由檢測:
路由規則:
路由到模塊/控制器/方法(默認模式)
路由到外部重定向地址
路由到控制器方法
路由到閉包函數
路由到類的方法
分發請求:
將用戶的請求分發到對應的路由地址,完成應用的業務邏輯並返回數據
統一使用return返回數據,不用echo直接輸出、
若是非必要不要用exit或者die中斷
分發請求的五種路由地址模式:
路由到模塊/控制器/方法(默認模式)
路由到外部重定向地址
路由到控制器方法
路由到閉包函數
路由到類的方法
響應輸出:
控制器正常返回的數據一般是String或者、Array的格式
統一使用return返回數據,不是直接輸出,這樣能夠自動調用Response::send()方法將最終的返回數據輸出到頁面或者客戶端。並自動轉換稱default_return_type參數設置的格式(xml,json等)