<?php
// 纯PHP实现,使用pcntl,性能一般
/*
// 给当前php进程安装一个alarm信号处理器
// 当进程收到alarm时钟信号后会作出动作
pcntl_signal( SIGALRM, function(){
    echo "tick.".PHP_EOL;
} );
// 定义一个时钟间隔时间,1秒钟吧
$tick = 1;
while( true ){
    // 当过了tick时间后,向进程发送一个alarm信号
    pcntl_alarm( $tick );
    // 分发信号,呼唤起安装好的各种信号处理器
    pcntl_signal_dispatch();
    // 睡个1秒钟,继续
    sleep( $tick );
}
*/

// 初始化一个EventConfig
$eventConfig = new EventConfig();
// 根据EventConfig初始化一个EventBase
$eventBase = new EventBase($eventConfig);
// 初始化一个定时器event
$timer = new Event($eventBase, -1, Event::TIMEOUT | Event::PERSIST, function () {
    echo microtime(true) . ':起飞!' . PHP_EOL;
});
// tick间隔为0.05秒钟,我们还可以改成0.5秒钟甚至0.001秒,也就是毫秒级定时器
$tick = 0.05;
// 将定时器event添加(可以不传$tick)
$timer->add($tick);
// eventBase进入loop状态
$eventBase->loop();