Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
4 / 4
CRAP
100.00% covered (success)
100.00%
1 / 1
TracksExecutionTime
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
4 / 4
4
100.00% covered (success)
100.00%
1 / 1
 startClock
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 stopClock
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getExecutionTimeInMs
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getExecutionTimeString
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace Hyde\Framework\Concerns;
6
7use function microtime;
8use function number_format;
9
10trait TracksExecutionTime
11{
12    protected float $timeStart;
13
14    protected function startClock(): void
15    {
16        $this->timeStart = microtime(true);
17    }
18
19    protected function stopClock(): float
20    {
21        return microtime(true) - $this->timeStart;
22    }
23
24    protected function getExecutionTimeInMs(): int|float
25    {
26        return $this->stopClock() * 1000;
27    }
28
29    protected function getExecutionTimeString(): string
30    {
31        return number_format($this->getExecutionTimeInMs(), 2).'ms';
32    }
33}