ServerManager
ServerManager 是 EasySwoole 框架中,用于全局存儲 Swoole 對象實例 所用的一個單例對象。完整的代碼實現在 \EasySwoole\EasySwoole\ServerManager。
關鍵函數
__construct
在構造函數中,ServerManager 實例化了一個事件注冊器 \EasySwoole\EasySwoole\Swoole\EventRegister,本質上這是一個數組容器。該容器用于存儲注冊給 Swoole 實例的事件回調。
createSwooleServer
該函數會根據所傳遞的參數與配置項,創建一個 Swoole 實例,并把該實例賦值存儲到 ServerManager 對象 的 swooleServer 屬性中。
addServer
該函數用于調用 Swoole 實例 的 addlistener 方法,創建一個 Swoole的子服務,并返回該主服務的事件注冊器 EventRegister,注意該注冊器的作用域僅僅在對應的子服務中。
start
該函數用于調用 Swoole 實例 的 start 方法,也就是實質性地啟動一個 Swoole 服務。該函數做了如下事情:
- 注冊主實例的事件回調
- 注冊各個子服務的事件回調
- 啟動服務
其他函數
| 名稱 | 參數 | 功能描述 |
|---|---|---|
| getSwooleServer | string $serverName = null | 用于獲取當前的 Swoole 實例 或者是對應子服務的 subPort 對象 |
| getEventRegister | string $serverName = null | 用于獲取 主Swoole實例 或者是對應子服務的subPort對象 的事件回調注冊容器 |
| isStart | - | 用于判斷當前服務是否已經啟動 |