ArrayReporter   A
last analyzed

Complexity

Total Complexity 10

Size/Duplication

Total Lines 78
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 10
lcom 1
cbo 2
dl 0
loc 78
ccs 0
cts 53
cp 0
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A getResults() 0 4 1
A getGlobalStatus() 0 4 1
A onAfterRun() 0 33 4
A onStart() 0 4 1
A onBeforeRun() 0 4 1
A onStop() 0 4 1
A onFinish() 0 4 1
1
<?php
2
3
namespace Liip\MonitorBundle\Helper;
4
5
use Laminas\Diagnostics\Check\CheckInterface;
6
use Laminas\Diagnostics\Result\Collection as ResultsCollection;
7
use Laminas\Diagnostics\Result\ResultInterface;
8
use Laminas\Diagnostics\Result\SkipInterface;
9
use Laminas\Diagnostics\Result\SuccessInterface;
10
use Laminas\Diagnostics\Result\WarningInterface;
11
use Laminas\Diagnostics\Runner\Reporter\ReporterInterface;
12
13
/**
14
 * @author Kevin Bond <[email protected]>
15
 */
16
class ArrayReporter implements ReporterInterface
17
{
18
    const STATUS_OK = 'OK';
19
    const STATUS_KO = 'KO';
20
21
    private $globalStatus = self::STATUS_OK;
22
    private $results = [];
23
24
    /**
25
     * @return array
26
     */
27
    public function getResults()
28
    {
29
        return $this->results;
30
    }
31
32
    /**
33
     * @return string
34
     */
35
    public function getGlobalStatus()
36
    {
37
        return $this->globalStatus;
38
    }
39
40
    public function onAfterRun(CheckInterface $check, ResultInterface $result, $checkAlias = null)
41
    {
42
        switch (true) {
43
            case $result instanceof SuccessInterface:
44
                $status = 0;
45
                $statusName = 'check_result_ok';
46
                break;
47
48
            case $result instanceof WarningInterface:
49
                $status = 1;
50
                $statusName = 'check_result_warning';
51
                $this->globalStatus = self::STATUS_KO;
52
                break;
53
54
            case $result instanceof SkipInterface:
55
                $status = 2;
56
                $statusName = 'check_result_skip';
57
                break;
58
59
            default:
60
                $status = 3;
61
                $statusName = 'check_result_critical';
62
                $this->globalStatus = self::STATUS_KO;
63
        }
64
65
        $this->results[] = [
66
            'checkName' => $check->getLabel(),
67
            'message' => $result->getMessage(),
68
            'status' => $status,
69
            'status_name' => $statusName,
70
            'service_id' => $checkAlias,
71
        ];
72
    }
73
74
    public function onStart(\ArrayObject $checks, $runnerConfig)
75
    {
76
        return;
77
    }
78
79
    public function onBeforeRun(CheckInterface $check, $checkAlias = null)
80
    {
81
        return;
82
    }
83
84
    public function onStop(ResultsCollection $results)
85
    {
86
        return;
87
    }
88
89
    public function onFinish(ResultsCollection $results)
90
    {
91
        return;
92
    }
93
}
94