Completed
Push — master ( 027c33...8d74e7 )
by
unknown
03:32
created

Validation::getFields()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
cc 3
eloc 4
nc 3
nop 1
dl 0
loc 8
ccs 0
cts 4
cp 0
crap 12
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace PluginSimpleValidate;
4
5
use PluginSimpleValidate\Libraries\Language;
6
7
class Validation implements \PluginSimpleValidate\Contracts\Validation
8
{
9
    /**
10
     * @var array
11
     * array of Field
12
     */
13
    private $fields;
14
15
    /**
16
     * @var array
17
     */
18
    private $errors;
19
20
    /**
21
     * @var Language
22
     */
23
    private $language;
24
25
    /**
26
     * Validation constructor.
27
     * @param Language $language
28
     */
29 1
    public function __construct(Language $language)
30
    {
31 1
        $this->language = $language;
32 1
        $this->fields = [];
33 1
        $this->errors = [];
34 1
    }
35
36
    /**
37
     * @param \PluginSimpleValidate\Contracts\Field $field
38
     * @return $this
39
     */
40 1
    public function addField(\PluginSimpleValidate\Contracts\Field $field)
41
    {
42 1
        $this->fields[$field->getName()] = $field;
43 1
        return $this;
44
    }
45
46
    /**
47
     * @param bool $break_when_error
48
     * @return bool
49
     */
50 1
    public function run($break_when_error = false) : bool
51
    {
52
        /** @var Field $field */
53 1
        foreach ($this->fields as $field) {
54 1
            if (!$field->isValid($this->language)) {
55 1
                $this->errors[$field->getName()] = $field->getError();
56 1
                if ($break_when_error) {
57 1
                    break;
58
                }
59
            }
60
        }
61
62 1
        return empty($this->errors) ? true : false;
63
    }
64
65
    /**
66
     * @return array
67
     */
68 1
    public function getErrors()
69
    {
70 1
        return $this->errors;
71
    }
72
73
    /**
74
     * @param string $fieldName
75
     * @return array|Field|null
76
     */
77
    public function getFields(string $fieldName = '')
78
    {
79
        if (empty($fieldName)) {
80
            return $this->fields;
81
        }
82
83
        return isset($this->fields[$fieldName]) ? $this->fields[$fieldName] : null;
84
    }
85
}