workerman的Worker类代码分析
static::checkSapiEnv(); #检测sapi的环境
SAPI 服务器应用程序编程接口,即PHP与其它应用交互接口,PHP脚本要执行有很多方式,通过Web的服务,或者直接在命令行下,也可以嵌入在其他程序中
常见SAPI有:cgi fast-cgi cli(命令行) apache模块的DDL isapi
static::init(); #初始化
static::lock(); #锁上文件,其它进程不能在用了,不能操作
static::parseCommand(); #判断是不是linux系统, 命令行
static::daemonize(); #守护进程的东西 static::$_os !==OS_TYPE_LINUX 判断是否是linux
static::initWorkers(); #初始化所有的workers实例 static::getUiColumns()获取字段就是下面的图片

static::installSignal(); #安装信号


static::saveMasterPid(); #保存主进程id master主进程保存起来
#以上的方法是在锁上之后在操作
static::unlock(); #解锁
static::displayUI(); #展示页面

static::forkWorkers(); #子进程
static::resetStd(); #重置的 标准输入和输出
static::monitorWorkers(); #监控子进程的
forkOneWorkerForLinux($worker) #linux子进程时候调用 $worker->run()
public function run()
就可以达到回调了 $this(就是当前worker实例 )当个这个$this->onWorkerStart属性的参数,就注册进去了

call_user_func
call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] ) : mixed
第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数
public function acceptConnection($socket) 是接受一个连接
$this 是当前woreker实例

$parser::encode($send_buffer, $this) #这是打包的处理
Worker.php

浙公网安备 33010602011771号