# 生命周期
*****
## 應用程序生命周期
### 1. 實例化
首先,實例化`Slim\App`類。這是Slim應用程序對象。在實例化期間,Slim為每個應用程序依賴項注冊默認服務。應用程序構造函數接受可選的設置數組,用于配置應用程序的行為。
### 2. 路由定義
其次,使用應用程序實例的`get()`、`post()`、`put()`、`delete()`、`patch()`、`head()`和`options()`路由方法定義路由。這些實例方法用應用程序的Router對象注冊路由。每個路由方法都返回路由實例,因此您可以立即調用路由實例的方法來添加中間件或分配名稱。
### 3.應用程序運行
第三,調用應用程序實例的`run()`方法。該方法啟動如下過程:
A.進入中間件堆棧
`run()`方法開始向內遍歷應用程序的中間件堆棧。這是中間件層的同心結構,在slim應用程序運行之前(和之后)接收(可選操作)環境、請求和響應對象。瘦應用程序是同心中間件結構的最內層。每個中間件層都是從最外層內部開始調用的。
b .運行應用程序
`run()`方法到達最內部的中間件層后,調用應用程序實例并將當前HTTP請求分派給適當的應用程序路由對象。如果路由匹配HTTP方法和URI,就會調用路由的中間件和可調用的。如果沒有找到匹配的路由,則調用未找到或不允許的處理程序。
C.退出中間件堆棧
應用程序分發過程完成后,每個中間件層從最內層開始向外收回控制。
D.發送HTTP響應
在最外層中間件層割讓控制之后,應用程序實例準備、序列化并返回HTTP響應。HTTP響應頭是用PHP的本機`header()`方法設置的,HTTP響應體輸出到當前輸出緩沖區。
- 開始
- 安裝
- 升級指南
- Web服務器
- 概念
- 生命周期
- PSR 7
- 中間件
- 依賴容器
- 實例 及通知和警告處理
- Request
- 請求方法
- 請求頭信息
- 請求主體
- 上傳的文件
- 請求幫助
- 路由對象
- Response
- 響應狀態
- 響應標頭
- 響應體
- 返回JSON
- 視圖模板
- 路由
- 創建路由
- 路由回調
- 路由策略
- 路線占位符
- 路由名
- 路由組
- 路由中間件
- 路由表達式緩存
- 容器識別解析
- 封裝中間件
- 路由的中間件
- 錯誤處理中間件
- 方法重寫的中間件
- 輸出緩沖中間件
- 內容長度中間件
- 擴展功能
- 以 / 結尾的路由模式
- 獲取當前路由
- 設置CORS
- 使用POST表單上傳文件
- 第三方組件
- slim-session
- auth
- slim-api-skeleton
- dir