Core
Core
是 EasySwoole
框架中核心的基礎(chǔ)架構(gòu)對(duì)象,這是一個(gè)單例對(duì)象,它的完整實(shí)現(xiàn)在 \EasySwoole\EasySwoole\Core
。
關(guān)鍵函數(shù)
__construct
在構(gòu)造函數(shù)中,做了以下兩件事:
- 常量定義
defined('SWOOLE_VERSION') or define('SWOOLE_VERSION', intval(phpversion('swoole')));
defined('EASYSWOOLE_ROOT') or define('EASYSWOOLE_ROOT', realpath(getcwd()));
defined('EASYSWOOLE_SERVER') or define('EASYSWOOLE_SERVER', 1);
defined('EASYSWOOLE_WEB_SERVER') or define('EASYSWOOLE_WEB_SERVER', 2);
defined('EASYSWOOLE_WEB_SOCKET_SERVER') or define('EASYSWOOLE_WEB_SOCKET_SERVER', 3);
- 全局
EasySwooleEvent.php
事件引入
在該構(gòu)造函數(shù)中嘗試重新定義
EASYSWOOLE_ROOT
常量是為了支持用戶自定義腳本啟動(dòng)
runMode
可以通過調(diào)用此函數(shù)獲取框架當(dāng)前運(yùn)行的模式,默認(rèn)模式為 dev
。可在框架啟動(dòng)時(shí)指定模式和要加載的配置文件,詳細(xì)見 基礎(chǔ)管理命令。然后在框架任何地方調(diào)用此函數(shù)以獲取當(dāng)前運(yùn)行的模式,方便調(diào)試。
使用示例:在控制器中調(diào)用
if (\EasySwoole\EasySwoole\Core::getInstance()->runMode() == 'dev') {
// 開發(fā)模式下執(zhí)行的邏輯
}
initialize
框架核心骨架初始化,做了以下幾件事
- 根據(jù)運(yùn)行模式加載配置文件
- 初始化臨時(shí)目錄和日志目錄
- 初始化錯(cuò)誤處理器
- 調(diào)用全局
EasySwooleEvent.php
中的initialize
事件
createServer
根據(jù)配置文件,調(diào)用 ServerManager
初始化對(duì)應(yīng)的 Swoole實(shí)例
,并執(zhí)行以下事情:
- 調(diào)用全局
EasySwooleEvent.php
中的mainServerCreate
事件 - 注冊(cè)框架系統(tǒng)默認(rèn)的事件回調(diào)
- 附加處理,例如注冊(cè)
CronTab
進(jìn)程、注冊(cè)Task
進(jìn)程等
start
根據(jù)配置文件中設(shè)置的服務(wù)名稱,設(shè)置服務(wù)名稱和進(jìn)程的名稱,調(diào)用 ServerManager
,啟動(dòng)框架。