for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Dazzle\Loop\Timer;
use Dazzle\Loop\LoopModelInterface;
class Timer implements TimerInterface
{
/**
* @var float
*/
const MIN_INTERVAL = 1e-6;
* @var LoopModelInterface
protected $loop;
protected $interval;
* @var callable
protected $callback;
* @var bool
protected $periodic;
* @var mixed|null
protected $data;
* @param LoopModelInterface $loop
* @param $interval
* @param callable $callback
* @param bool $periodic
* @param mixed|null $data
public function __construct(LoopModelInterface $loop, $interval, callable $callback, $periodic = false, $data = null)
if ($interval < self::MIN_INTERVAL)
$interval = self::MIN_INTERVAL;
}
$this->loop = $loop;
$this->interval = (float) $interval;
$this->callback = $callback;
$this->periodic = (bool) $periodic;
$this->data = $data;
*
public function __destruct()
unset($this->loop);
unset($this->interval);
unset($this->callback);
unset($this->periodic);
unset($this->data);
* @override
* @inheritDoc
public function getLoop()
return $this->loop;
public function getInterval()
return $this->interval;
public function getCallback()
return $this->callback;
public function getData()
return $this->data;
public function setData($data)
public function isPeriodic()
return $this->periodic;
public function isActive()
return $this->loop->isTimerActive($this);
public function cancel()
if (isset($this->loop))
$this->loop->cancelTimer($this);