# URL的生命周期
[TOC]
典型的URL生命周期:客戶端發送請求到服務器,服務器接收到請求返回給客戶端。這就是一個典型的URL生命周期的執行。
## Thinkphp的生命周期
1、入口文件->public/index.php:用戶通過入口文件發送請求,它是整個應用的入口與起點。入口文件只做二件事情,定義常量和加載引導文件,不放任何業務代碼。
2、引導文件->thinkphp/start.php:它執行 `加載常量` -> `加載環境變量`\-> `注冊自動加載`\-> `注冊錯誤與異常`\-> `加載慣例配置`\-> `執行應用`
3、注冊自動加載:作用與將所有符合類型的類庫(composer的依賴)自動進行加載,不需要我們認為去注冊加載。
4、注冊錯誤和異常機制:它主要是執行think/Error::register方法注冊錯誤和異常處理。
5、應用初始化:嚴格意義上以上4部操作都是屬于應用的初始化部分。
6、URL的訪問檢測:URL必須是PATH\_INFO格式才允許繼續允許。[http://域名/入口文件/模塊名/控制器名稱/操作方法名稱](http://xn--eqrt2g/%E5%85%A5%E5%8F%A3%E6%96%87%E4%BB%B6/%E6%A8%A1%E5%9D%97%E5%90%8D/%E6%8E%A7%E5%88%B6%E5%99%A8%E5%90%8D%E7%A7%B0/%E6%93%8D%E4%BD%9C%E6%96%B9%E6%B3%95%E5%90%8D%E7%A7%B0/%E5%8F%82%E6%95%B0%E5%90%8D/%E5%8F%82%E6%95%B0%E5%80%BC)/[參數名/參數值](http://xn--eqrt2g/%E5%85%A5%E5%8F%A3%E6%96%87%E4%BB%B6/%E6%A8%A1%E5%9D%97%E5%90%8D/%E6%8E%A7%E5%88%B6%E5%99%A8%E5%90%8D%E7%A7%B0/%E6%93%8D%E4%BD%9C%E6%96%B9%E6%B3%95%E5%90%8D%E7%A7%B0/%E5%8F%82%E6%95%B0%E5%90%8D/%E5%8F%82%E6%95%B0%E5%80%BC)
7、路由檢查:如果開啟了url\_route\_on參數,則首先會進行路由的檢測,一但檢測到了路由的匹配規則會注冊到相應的URL調度。
8、分發請求:將用戶的請求分發到對于的路由地址,完成業務的邏輯并返回數據。統一使用return返回數據。
9、響應輸出:控制器正常返回的數據:字符串或數組,統一使用return返回數據,而不是直接的輸出,這樣會自動調用Response::send()方法最終返回數據輸出到頁面或客戶端。并自動轉換成default\_return\_type參數的格式。
10、響應結束:響應輸出完成后,應用生命周期結束。
- 基礎
- 安裝PHP
- 語言基礎
- 變量
- 變量操作
- 超全局數組變量
- 變量作用域
- 變量傳值方式
- 常量
- 數據類型
- 運算符
- 流程控制
- 文件包含
- 錯誤處理
- 字符串操作
- 數組
- 函數
- 進階
- 面向對象
- 提高
- TP
- 安裝項目
- 框架基礎知識
- 命令創建模塊
- URL生命周期
- 路由操作
- Request請求類
- 參數綁定
- 依賴注入
- 模板操作
- 查詢操作
- 添加操作
- laravel
- ☆目錄結構
- CSRF攻擊
- ☆路由
- ☆控制器
- ☆請求類
- ☆視圖
- ☆模板繼承
- ☆表單驗證
- ☆DB類
- ☆模型
- ☆數據庫遷移
- 類型、修飾、索引
- ☆數據填充
- ☆數據分頁
- ☆session處理
- ☆中間件
- ☆緩存操作
- ☆文件上傳
- ☆接口操作
- ☆擴展插件
- restful
- 工作
- 工作記錄
- QQ登錄
- 新浪登錄
- 微信登錄
- sphinx搜索
- 數據庫
- MySQL
- ☆數據庫操作
- ☆數據表操作
- ☆數據的操作
- 待修改
- 優化
- 存儲引擎選擇
- 列表類型選擇
- 范式
- 慢日志查詢
- 精準時間記錄查詢
- 計劃任務 explain
- 索引
- 索與事務
- 查詢緩存
- 存儲過程
- 觸發器
- 分區
- 分表
- sphinx
- 讀寫分離
- 搜索優化
- 網站靜態化
- Memcache
- Mongodb
- Readis
- php使用redis
- 服務器
- Linux
- 目錄結構
- 常用命令
- VIM編輯器
- 用戶與用戶組
- 權限管理
- 運行級別
- 網絡模式
- ssh
- 軟件安裝
- 計劃任務
- Ubuntu
- 編譯PHP7.3
- 編譯MySQL
- 編譯Nginx
- apache虛擬機配置
- 安裝composer
- Nginx
- Git