SniffParser   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 5
c 1
b 0
f 0
lcom 0
cbo 3
dl 0
loc 60
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A parseMessage() 0 12 1
A parseSniff() 0 11 2
A parseFile() 0 9 2
1
<?php
2
3
namespace SnifferReport\Service;
4
5
use SnifferReport\Model\Sniff;
6
use SnifferReport\Model\File;
7
use SnifferReport\Model\Message;
8
9
class SniffParser
10
{
11
12
    /**
13
     * Parses CodeSniffer results into a Sniff object.
14
     *
15
     * @param $sniff_results
16
     *
17
     * @return Sniff
18
     */
19
    public static function parseSniff($sniff_results)
20
    {
21
        $sniff = new Sniff();
22
        foreach ($sniff_results as $file_name => $sniff_result) {
23
            $name_prefix = FILES_DIRECTORY_ROOT . '/';
24
            $file_name = str_replace($name_prefix, '', $file_name);
25
            $file = self::parseFile($file_name, $sniff_result);
26
            $sniff->addFile($file);
27
        }
28
        return $sniff;
29
    }
30
31
    /**
32
     * Parses a file from the CodeSniffer result into an object.
33
     *
34
     * @param $file_name
35
     * @param $sniff_result
36
     *
37
     * @return File
38
     */
39
    private static function parseFile($file_name, $sniff_result)
40
    {
41
        $file = new File($file_name);
42
        foreach ($sniff_result->messages as $sniff_message) {
43
            $message_obj = self::parseMessage($sniff_message);
44
            $file->addMessages($message_obj);
45
        }
46
        return $file;
47
    }
48
49
    /**
50
     * Parses a message from the CodeSniffer file into an object.
51
     *
52
     * @param $sniff_message
53
     *
54
     * @return Message
55
     */
56
    private static function parseMessage($sniff_message)
57
    {
58
        $message = $sniff_message->message;
59
        $source = $sniff_message->source;
60
        $severity = $sniff_message->severity;
61
        $type = $sniff_message->type;
62
        $line = $sniff_message->line;
63
        $column = $sniff_message->column;
64
        $fixable = $sniff_message->fixable;
65
        $message_obj = new Message($message, $source, $severity, $type, $line, $column, $fixable);
66
        return $message_obj;
67
    }
68
}
69