# 4 框架結構
## 處理請求流程圖

### 服務啟動
框架在服務啟動時需要完成初始化的一系列工作:
1. 注冊Swoole各種事件回調函數
2. 讀取配置文件
3. 注冊配置管理進程
4. 初始化對象池實例
5. 進入Event Loop事件循環
### 處理請求
1. 根據用戶請求的URI路由
2. 判斷處理請求的action是否需要協程調度
3. 如2為Y則創建協程Task,將Task壓入調度的堆
4. 由IO事件觸發協程調度器調度請求
5. Task執行完成,響應用戶請求
6. 釋放相關資源
## 應用程序目錄
建議使用 `app` 作為應用程序目錄,業務邏輯都在里面,框架級別的東西也可以通過在 `app` 目錄下的繼承來修改。
## 入口文件
應用程序需要一個入口啟動腳本,并且啟動腳本是通過 PHP CLI方式運行的,例如 `server.php`。
## psr4
- 類采用首字母大寫的駝峰式命名,類文件名必須與文件內部類名相同
- 使用命名空間,命名空間名字與目錄路徑對應
- 0 文檔說明
- 1 為什么研發新框架
- 1.1 傳統php-fpm工作模式的問題
- 1.2 壓測數據對比
- 1.3 小結
- 2 微服務框架研發概覽
- 2.1 通信框架技術選型
- 2.2 swoole
- 2.3 協程原理
- 2.4 異步、并發
- 2.5 小結
- 3 框架運行環境
- 3.1 環境變量
- 3.2 運行代碼
- 3.3 docker
- 3.4 小結
- 4 框架結構
- 4.1 結構概述
- 4.2 控制器
- 4.3 模型
- 4.4 視圖
- 4.5 同步任務
- 4.6 配置
- 4.7 路由
- 4.8 小結
- 5 框架組件
- 5.1 協程
- 5.2 類的加載
- 5.3 異步Http Client
- 5.4 請求上下文
- 5.5 連接池
- 5.6 對象池
- 5.7 RPC
- 5.8 公共庫
- 5.9 RESTful
- 5.10 多語言
- 5.11 雜項
- 5.12 小結
- 6 常見問題
- 7 附錄