. * * @link https://www.librenms.org * @copyright 2020 Tony Murray * @author Tony Murray */ namespace LibreNMS\Data\Measure; class Measurement { private $start; private $type; private $duration; private function __construct(string $type) { $this->type = $type; $this->start = microtime(true); } /** * Start the timer for a new operation * * @param string $type * @return static */ public static function start(string $type) { return new static($type); } /** * End the timer for this operation * * @return $this */ public function end() { $this->duration = microtime(true) - $this->start; return $this; } /** * Get the duration of the operation * * @return float */ public function getDuration() { return $this->duration; } /** * Get the type of the operation * * @return string */ public function getType() { return $this->type; } }