TextOutput   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
dl 0
loc 50
rs 10
c 0
b 0
f 0
wmc 8
lcom 1
cbo 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A result() 0 23 5
A countIssues() 0 12 3
1
<?php
2
namespace Finder\Logic\Output;
3
4
use Finder\Logic\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
     *
40
     * @param  array[] $file
41
     * @return integer number of issues in all lines
42
     */
43
    private function countIssues($file)
44
    {
45
        $counter = 0;
46
47
        foreach ($file as $line => $issues) {
48
            foreach ($issues as $issue) {
49
                $counter++;
50
            }
51
        }
52
53
        return $counter;
54
    }
55
}
56