easyswoole框架源码解析

本文详细解析了Easyswoole框架的服务启动过程,从`esay_swoole/easyswoole`开始,经过`Caller`、`CommandRunner`和`CommandManager`,最终到达`Server`和`Core`服务的初始化。重点介绍了关键类的构造和方法调用,以及配置加载和Swoole事件管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前只有对启动流程分析,后续有其他分析会持续更新

启动服务流程:

esay_swoole\easyswoole

esay_swoole\vendor\bin\easyswoole

esay_swoole\vendor\easyswoole\easyswoole\bin\easyswoole 【Caller、CommandRunner】

esay_swoole\vendor\easyswoole\command\src\Caller.php

//获取Caller对象,设置command\params\script值 用于CommandManager

command:第二个参数

script:第一个参数

params:所有参数

启动指令对应参数设置

php easyswoole server start -d

object(EasySwoole\Command\Caller)#3 (3) {

["script":"EasySwoole\Command\Caller":private]=>

string(36) "/mnt/hgfs/WWW/esay_swoole/easyswoole"

["command":"EasySwoole\Command\Caller":private]=>

string(6) "server"

["params":"EasySwoole\Command\Caller":private]=>

array(4) {

[0]=>

string(36) "/mnt/hgfs/WWW/esay_swoole/easyswoole"

[1]=>

string(6) "server"

[2]=>

string(5) "start"

[3]=>

string(2) "-d"

}

}

esay_swoole\vendor\easyswoole\easyswoole\src\Command\CommandRunner.php

//构造函数初始化添加command对象注册树[Install、Task、Crontab、Process、Server、PhpunitCommand、DocCommand]

run函数解析

public function run(CallerInterface $caller): ResultInterface

{

//启动服务前相关操作

        if (is_callable($this->beforeCommand)) {

            call_user_func($this->beforeCommand, $caller);

        }



//清除opcache

        Utility::opCacheClear();



        //启动指定服务器

        $msg = CommandManager::getInstance()->run($caller);



        //结果和提示语对象

        $result = new Result();

        $result->setMsg($msg);

        return $result;

    }

esay_swoole\vendor\easyswoole\command\src\CommandManager.php

//指令管理类 分析输入指令启动指定服务器以及显示相关帮助指令

esay_swoole\vendor\easyswoole\easyswoole\src\Command\DefaultCommand\Server.php

//启动server服务

初始化core核心服务

定义常量,引入EasySwooleEvent

加载配置文件

临时文件和Log目录初始化

初始化initialize

注册错误回调

esay_swoole\vendor\easyswoole\easyswoole\src\Core.php

//核心服务

加载配置、初始化EasySwooleEvent、注册错误回调、创建服务、启动服务、

注册默认回调 - registerDefaultCallBack

包含onRequest事件接收请求转发

esay_swoole\vendor\easyswoole\easyswoole\src\ServerManager.php

//服务管理类 swoole服务

注册事件 esay_swoole\vendor\easyswoole\easyswoole\src\Swoole\EventRegister.php

添加子服务事件

真正启动swoole服务

esay_swoole\vendor\easyswoole\easyswoole\src\Config.php

//config配置管理类 负责加载读取配置

esay_swoole\vendor\easyswoole\easyswoole\src\Trigger.php

//异常类

esay_swoole\vendor\easyswoole\easyswoole\src\Swoole\EventRegister.php

swoole事件管理类 例如:workerStart、task等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值