URL請求的生命周期
客戶端通過URL發(fā)送訪問請求
服務器端返回請求數(shù)據(jù)
TP5的生命周期
入口文件-->引導文件-->注冊自動加載-->注冊錯誤和異常機制-->應用初始化-->URL訪問檢測-->路由檢測-->分發(fā)請求-->響應輸出-->應用結束
1.入口文件
-1.文件名:index.php;
-2.位置:public/index.php;
-3.用戶通過入口文件,發(fā)起服務請求,是整個應用的入口與起點;
-4.任務:定義常量,加載引導文件,不要放任何業(yè)務處理代碼;
-5.代碼: //定義項目路徑
define('APP_PATH',DIR.'/../application/');
//加載框架引導文件
require DIR.'/../thinkphp/start.php';
2.引導文件
-1.文件名:start.php;
-2.位置:thinkphp/start.php;
-.執(zhí)行: 加載常量-->加載環(huán)境變量-->注冊自動加載-->注冊錯誤與異常-->加載管理配置-->執(zhí)行應用
3.注冊自動加載
-1.類方法:Loader::register();
-2.作用:將所有符號規(guī)范的類庫(包括Composer依賴加載的第三方類庫)自動加載;
-3.執(zhí)行流程: 注冊自動加載方法: think\Loader::autoload --> 注冊系統(tǒng)命名空間 --> 加載類庫映射文件 --> 注冊Composer自動加載 --> 注冊extends擴展目錄
4.注冊錯誤和異常機制
執(zhí)行Error::register()注冊錯誤和異常處理1機制.
由三部分組成:
-1.應用關閉方法:think\Error::appShutdown
-2.錯誤處理方法:think\Error::appError
-3.異常處理方法:think\Error::appException
5.應用初始化
嚴格意義上講,前面的內(nèi)容都可算做應用初始化部分:
加載公共配置 --> 加載公共擴展配置 -->加載應用狀態(tài)配置 --> 加載別名配置 -->
--> 加載行為定義 --> 加載公共函數(shù)文件 -->注冊應用命名空間 --> 加載擴展函數(shù)文件 --> 設置默認時區(qū) --> 加載系統(tǒng)語言包
6.URL訪問檢測
URL必須是PATH_INFO格式才允許繼續(xù)運行.
1.PATH_INFO標準格式:
http://域名/index.php/模塊名/控制器名/操作名/參數(shù)鍵值對
舉例: http://tp5.com/index.php/index/user/add/id/10/name/peter
2.PHTH_INFO兼容格式:
http://域名/index.php?s=/模塊名/控制器名/操作名&參數(shù)鍵值對
舉例: http://tp5.com/index.php?s=index/user/add&id=10&name=peter
7.路由檢測
-1.如果開啟了url_route_on參數(shù),則首先進行URL路由檢測;
-2.一旦檢測到匹配的路由,根據(jù)路由規(guī)則會注冊到相應的URL調度;
-3.TP5支持的路由規(guī)則如下:
- 路由到模塊/控制器/操作;(這是默認路由模式,如果關閉路由或者路由檢測無效則執(zhí)行該模式)
- 路由到外部重定向地址;
- 路由到控制器方法;
- 路由到閉包函數(shù);
- 路由到類的方法;
8.分發(fā)請求
-1.將用戶請求分發(fā)到對應的路由地址,完成應用的業(yè)務邏輯并返回數(shù)據(jù);
-2.統(tǒng)一使用return返回數(shù)據(jù),不要用echo直接輸出;
-3.如非必要,請不要使用exit或者die中斷執(zhí)行;
-4.分發(fā)請求支持TP5的五種路由地址模式:
路由到模塊/控制器/操作; 路由到外部重定向地址; 路由到控制器方法; 路由到閉包函數(shù); 路由到類方法;
9.響應輸出
-1.控制器正常返回的數(shù)據(jù)通常是:字符串(String)或數(shù)組(Array)格式;
-2.統(tǒng)一使用return返回數(shù)據(jù),而不是直接輸出,這樣可以自動調用
Response::send()方法將最終的返回數(shù)據(jù)輸出到頁面或者客戶端,
并自動轉換成default_return_type參數(shù)配置的格式(XML,JSON等).
return 'ThinkPHP教學教程';
10.應用結束
-1.響應輸出完成后,應用生命周期基本結束,可以寫日志報告啦;
-2.日志包括二部分:用戶調試輸出和系統(tǒng)自動生成;
-3.日志在應用結束后,自動寫入.
總結:介紹了TP5框架中,一個應用從發(fā)出url請求,到正確獲取到響應數(shù)據(jù)的完整流程.這里只是快速瀏覽,
執(zhí)行細節(jié)在后介紹.