Completed
Push — master ( c3b2cd...52f4ed )
by Marco
04:42
created

DataValidator::validateBoolean()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 5
ccs 2
cts 2
cp 1
rs 9.4285
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php namespace Comodojo\RpcServer\Util;
2
3
/**
4
 * Data validation layer.
5
 *
6
 * @package     Comodojo Spare Parts
7
 * @author      Marco Giovinazzi <[email protected]>
8
 * @license     MIT
9
 *
10
 * LICENSE:
11
 *
12
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
18
 * THE SOFTWARE.
19
 */
20
21
class DataValidator {
22
23
    /**
24
     * Generic data validator.
25
     *
26
     * @param string $kind
27
     * @param mixed  $value
28
     *
29
     * @return bool
30
     */
31 48
    public static function validate($kind, $value) {
32
33 48
        $subfunction = "self::validate".ucfirst(strtolower(str_replace(".","",$kind)));
34
35 48
        return call_user_func($subfunction, $value);
36
37
    }
38
39 21
    public static function validateInt($value) {
40
41 21
        return is_integer($value);
42
43
    }
44
45 3
    public static function validateDouble($value) {
46
47 3
        return is_float($value);
48
49
    }
50
51 3
    public static function validateBoolean($value) {
52
53 3
        return is_bool($value);
54
55
    }
56
57 3
    public static function validateBase64($value) {
58
59 3
        return is_string($value);
60
61
    }
62
63 33
    public static function validateString($value) {
64
65 33
        return is_string($value);
66
67
    }
68
69 3
    public static function validateNull($value) {
70
71 3
        return is_null($value);
72
73
    }
74
75 3
    public static function validateUndefined($value) {
0 ignored issues
show
Unused Code introduced by
The parameter $value is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
76
77 3
        return true;
78
79
    }
80
81 12
    public static function validateArray($value) {
82
83 12
        if ( !is_array($value) ) return false;
84
85 12
        return ( array() === $value || !self::validateStruct($value) );
86
87
    }
88
89 12
    public static function validateStruct($value) {
90
91 12
        if ( is_array($value) || is_object($value) ) {
92
93 12
            $array = (array) $value;
94
95 12
            return array_keys($array) !== range(0, count($array) - 1);
96
97
        }
98
99
        return false;
100
101
    }
102
103 3
    public static function validateDatetimeiso8601($value) {
104
105 3
        $match = preg_match('/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})/', $value, $matches);
106
107 3
        if ( $match ) {
108
109 3
            $time = gmmktime($matches[4], $matches[5], $matches[6], $matches[2], $matches[3], $matches[1]);
110
111 3
            $timestring = strtotime($value);
112
113 3
            if ($timestring === false) return false;
114
115 3
            return $timestring == $time;
116
117
        }
118
119 3
        return false;
120
121
    }
122
123
}
124