TextOutput::countIssues()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 12
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 12
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 6
nc 3
nop 1
1
<?php
2
namespace phphound\output;
3
4
use phphound\AnalysisResult;
5
6
class TextOutput extends AbstractOutput implements TriggerableInterface
7
{
8
    use TextTriggerTrait;
9
10
    /**
11
     * @inheritdoc
12
     */
13
    public function result(AnalysisResult $result)
14
    {
15
        foreach ($result->toArray() as $fileName => $lines) {
16
            $this->cli->br();
17
18
            $issuesCount = $this->countIssues($lines);
19
            $issues = '(1 issue)';
20
21
            if ($issuesCount > 1) {
22
                $issues = '(' . $issuesCount . ' issues)';
23
            }
24
25
            $this->cli->yellowFlank($fileName . ' ' . $issues, '=', 2);
26
27
            foreach ($lines as $line => $issues) {
28
                foreach ($issues as $issue) {
29
                    $this->cli->cyan()->inline($line . ': ');
30
                    $this->cli->inline(trim($issue['message']));
31
                    $this->cli->br();
32
                }
33
            }
34
        }
35
    }
36
37
    /**
38
     * Count number of issues for a given file
39
     * @param array[] $file
40
     * @return integer number of issues in all lines
41
     */
42
    private function countIssues($file)
43
    {
44
        $counter = 0;
45
46
        foreach ($file as $line => $issues) {
47
            foreach ($issues as $issue) {
48
                $counter++;
49
            }
50
        }
51
52
        return $counter;
53
    }
54
}
55