ExecutionInfoFormatter::formatTime()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
namespace Workana\AsyncJobs\Formatter;
3
4
use Workana\AsyncJobs\ExecutionInfo;
5
6
/**
7
 * @author Carlos Frutos <[email protected]>
8
 */
9
class ExecutionInfoFormatter extends AggregateFormatterAware
10
{
11
    const ONE_MILLION = 1000000;
12
13
    /**
14
     * {@inheritdoc}
15
     */
16
    public function format($target)
17
    {
18
        $rawInfo = $target->toArray();
19
        $info = [
20
            '[',
21
            '   Execution time: ' . $this->formatTime($rawInfo),
22
            '   Queue: ' . $rawInfo['queueName'],
23
            '   Preferred queue: ' . $rawInfo['preferredQueue'] ?: '(none)',
24
            '   Delay: ' . $rawInfo['delay'] . ' seconds',
25
            '   Retry: ' . $rawInfo['retries'] . ' / ' . $rawInfo['maxRetries'],
26
            ']',
27
        ];
28
29
        return implode(PHP_EOL, $info);
30
    }
31
32
    public function formatTime(array &$info)
33
    {
34
        return strtr(':number :unit', [':number' => round($info['executionTime'], 3), ':unit' => 'seconds']);
35
    }
36
37
    /**
38
     * {@inheritdoc}
39
     */
40
    public function canFormat($target)
41
    {
42
        return ($target instanceof ExecutionInfo);
43
    }
44
}