## 一、單一應用對象
swoolefy的大致工作流程分為兩部分:
#### 1、啟動流程
a. 首先是啟動服務,將會加載vendor下的autoload.php的自動加載文件,自定義的autoloader.php的自動加載文件,完成命名空間的注冊,加載swoolefy底層必要常量
b. 根據不同的服務創建不同的應用服務器,判斷當前環境是否滿足條件,然后根據協議層的config.php配置文件在各個進程啟動時設置進程名稱,執行啟動的初始化。
#### 2、請求處理流程:
a. 接受請求,應用單例執行boostrap引導過程,設置環境,初始化判斷等
b. 根據不同服務的路由規則,判斷類文件是否存在,創建一個控制器實例,然后智能調度
c. 制器實例執行_beforceAction操作,然后執行action操作
d. 視圖渲染與response
e. 制器實例執行_afterAction操作銷毀類靜態變量或者初始化化,應用單例執行end操作,注冊的鉤子函數等銷毀worker進程產生的全局變量或者類靜態變量
## 2、啟動時自動創建服務對應的協議層
在每個不同的的服務啟動時,將會創建對應服務目錄,(例如上面章節啟動http的服務時,將會自動在project的目錄下創建protocol/App目錄)目錄將包含幾個文件
* http服務(protocol/App)
~~~
protocol/App
|----log
|--includes.json
|--log.txt
|--server.pid
|----config-dev.php
|----config-gra.php
|----config-gra.php
~~~
* websocket服務(protocol/websocket)
```
|----log
|--includes.json
|--log.txt
|--server.pid
|----config-dev.php
|----config-gra.php
|----config-gra.php
```
應用目錄下的WebsocketEventServer.php這個文件是抽象Event的回調處理類,與底層的服務解耦,在實際業務中,我們可能需要在回調函數中做一些處理,默認不做處理也即可使用
* rpc服務(protocol/rpc)
```
|----log
|--includes.json
|--log.txt
|--server.pid
|----config-dev.php
|----config-gra.php
|----config-gra.php
```
應用目錄下的RpcServer.php這個文件是抽象Event的回調處理類,與底層的服務解耦,在實際業務中,我們可能需要在回調函數中做一些處理,默認不做處理也即可使用
* Udp服務(protocol/udp)
~~~
|----log
|--includes.json
|--log.txt
|--server.pid
|----config-dev.php
|----config-gra.php
|----config-gra.php
~~~
應用目錄下的UdpEventServer.php這個文件是抽象Event的回調處理類,與底層的服務解耦,在實際業務中,我們可能需要在回調函數中做一些處理,默認不做處理也即可使用
對于抽象Event的回調處理類,將在下一節Event請求處理中說到
- 歡迎使用swoolefy
- 環境說明
- 開發部署
- 安裝
- 創建應用
- 啟動|停止服務
- nginx代理
- 創建Controller
- 應用結構
- App應用對象
- Event請求處理
- 超全局管理
- 熱更新
- inotify實現worker進程熱重啟
- http服務
- 應用層配置
- 協議層配置
- 路由規則
- 控制器
- 數據模型
- websocket服務
- 應用層配置
- 協議層配置
- 數據封裝格式
- 控制器
- 數據模型
- 二進制數據處理
- rpc服務
- 應用層配置
- 協議程配置
- 數據包協議格式
- 服務控制器
- 服務數據模型
- udp服務
- 應用層配置
- 協議層配置
- 數據包封裝格式
- 控制器
- 存在問題
- 常用組件
- log
- view
- session
- cache(redis)
- db(mysql)
- mongodb
- 其他服務管理
- 自定義進程管理
- 異步任務管理
- 內存表管理
- 定時器管理
- 異常捕捉處理
- 進程池管理
- systerm采集進程服務