# 生命周期
* * * * *
此處講解的是OneBase的生命周期,若對TP5生命周期不了解請先閱讀TP5文檔。
### 1、入口文件
用戶發起請求會經過應用的入口文件,通常在public目錄下。
入口文件主要做3件事情,初始化框架常量,綁定請求模塊,加載引導文件。
OneBase推薦每個對外訪問的模塊一個入口文件,當然若有需要也可以使用同一個入口文件。
### 2、系統初始化行為
執行行為定義文件 app/tags.php
下面將依次執行系統行為文件 InitBase.php 進行應用初始化,InitHook.php 進行鉤子插件初始化,AppBegin.php 進行開始信息記錄。
### 3、公共控制器
進入了控制器層,開始執行公共控制器 ControllerBase.php
公共控制器加載時做了三件事,初始化請求信息,初始化全局靜態資源,初始化響應類型。
### 4、模塊控制器
公共控制器執行完畢則進入了請求的模塊控制器,在模塊控制器中執行業務邏輯層完成相應的業務邏輯處理,業務邏輯層處理后返回控制器層,由控制器進行模板渲染或請求跳轉。
### 5、模塊業務層
控制器調用過來由業務層進行業務邏輯處理,業務邏輯可以簡單處理業務返回數據,也可以有很多分支,當然也可以調用函數庫與composer安裝的一些依賴進行數據處理。
### 6、數據驗證層|系統服務層|數據模型層...
數據驗證層主要做數據合法性驗證,若驗證可能跨模塊可放入公共模塊的驗證層。
系統服務層主要是給系統提供第三方服務,當然也可以是自行研發的服務,如:支付,云儲存,短信 等。
數據模型層則是數據庫表的映射,可通過數據模型操作數據表。
### 7、數據訪問層
數據訪問層則是指ModelBase,因為幾乎所有的數據庫操作都需要經過此處,目前此處的數據庫訪問操作都是通用的,會自動識別當前訪問的數據模型對象進行相應的表操作,若需要將數據訪問分散不需要自動識別則建議將數據表操作封裝在各表的數據模型文件,通用部分封裝在各模型層的基類文件。
### 8、響應輸出
以上流程執行完畢后請求原路返回,通過返回的數據進行JSON或模板的渲染響應輸出。
### 9、應用結束
輸出后則會執行應用結束行為,進行日志的寫入。
OneBase系統生命周期大致就是這樣,當然中途可能會有很多分支及判斷包括權限驗證等,此處不在細分。
- 序言
- 基礎
- 安裝環境
- 安裝演示
- 規范
- 目錄
- 介紹
- 后臺介紹
- 后臺首頁
- 會員管理
- 系統管理
- 系統設置與配置管理
- 菜單管理
- 系統回收站
- 服務管理
- 插件管理
- 文章管理
- 接口管理
- 優化維護
- SEO管理
- 數據庫
- 文件清理
- 行為日志
- 執行記錄
- 統計分析
- 接口介紹
- 接口文檔
- 錯誤碼設計
- Token介紹
- 前臺介紹
- 架構
- 架構總覽
- 生命周期
- 入口文件
- 模塊設計
- 依賴注入
- 控制器架構
- 邏輯架構
- 驗證架構
- 服務架構
- 模型架構
- 行為架構
- 插件架構
- 配置
- 配置介紹
- 配置加載
- 配置擴展
- 請求
- 請求信息
- 日志
- 后臺行為日志
- 系統執行日志
- 框架日志
- 數據
- 數據庫設計
- 數據字典
- 數據庫操作
- 事務控制
- 混合操作
- 實戰
- 控制器
- 邏輯與驗證
- 視圖與模型
- 插件研發
- 服務研發
- 接口研發
- 雜項
- 數據導入導出
- 二維碼條形碼
- 郵件發送
- 云存儲服務
- 支付服務
- 短信服務
- 微信分享
- 生成海報
- 聊天室
- PJAX
- Demo
- Widget
- 附錄
- 常量參考
- 配置參考
- 函數參考
- 進階
- Redis
- 自動緩存
- 全自動緩存
- 索引
- 數據簽名
- 全自動事務
- 隊列