Code Duplication    Length = 17-17 lines in 3 locations

source/Spiral/Validation/Checkers/RequiredChecker.php 3 locations

@@ 47-63 (lines=17) @@
44
     *
45
     * @return bool|int
46
     */
47
    public function with($value, $with, bool $asString = true)
48
    {
49
        if ($this->notEmpty($value, $asString)) {
50
            return true;
51
        }
52
53
        $with = (array)$with;
54
        foreach ($with as $field) {
55
            if (!$this->isEmpty($field, $asString)) {
56
                //External field presented, BUT value must not be empty!
57
                return false;
58
            }
59
        }
60
61
        //Value is empty, but no external fields are set = value not required
62
        return Validator::STOP_VALIDATION;
63
    }
64
65
    /**
66
     * Check if field not empty but only if all of listed fields presented and not empty.
@@ 75-91 (lines=17) @@
72
     *
73
     * @return bool|int
74
     */
75
    public function withAll($value, $withAll, bool $asString = true)
76
    {
77
        if ($this->notEmpty($value, $asString)) {
78
            return true;
79
        }
80
81
        $withAll = (array)$withAll;
82
        foreach ($withAll as $field) {
83
            if ($this->isEmpty($field, $asString)) {
84
                //External field is missing, value becomes non required
85
                return Validator::STOP_VALIDATION;
86
            }
87
        }
88
89
        //Value is empty but all external field not empty
90
        return false;
91
    }
92
93
    /**
94
     * Check if field not empty but only if one of listed fields missing or empty.
@@ 104-120 (lines=17) @@
101
     *
102
     * @return bool|int
103
     */
104
    public function without($value, $without, bool $asString = true)
105
    {
106
        if ($this->notEmpty($value, $asString)) {
107
            return true;
108
        }
109
110
        $without = (array)$without;
111
        foreach ($without as $field) {
112
            if (!$this->isEmpty($field, $asString)) {
113
                //External field set, field becomes non required
114
                return Validator::STOP_VALIDATION;
115
            }
116
        }
117
118
        //Value is empty and no external fields are set
119
        return false;
120
    }
121
122
    /**
123
     * Check if field not empty but only if all of listed fields missing or empty.