IntegerHelper   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 7
lcom 0
cbo 1
dl 0
loc 42
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A isInteger() 0 5 2
A parseBoolean() 0 3 2
A parseString() 0 9 3
1
<?php
2
3
/*
4
 * This file is part of the core-library package.
5
 *
6
 * (c) 2018 WEBEWEB
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace WBW\Library\Core\Argument\Helper;
13
14
use WBW\Library\Core\Argument\Exception\IntegerArgumentException;
15
16
/**
17
 * Integer helper.
18
 *
19
 * @author webeweb <https://github.com/webeweb/>
20
 * @package WBW\Library\Core\Argument\Helper
21
 */
22
class IntegerHelper {
23
24
    /**
25
     * Determines if a value is an integer.
26
     *
27
     * @param mixed $value The value.
28
     * @return void
29
     * @throws IntegerArgumentException Throws a Integer argument exception if the value is not of expected type.
30
     */
31
    public static function isInteger($value): void {
32
        if (false === is_integer($value)) {
33
            throw new IntegerArgumentException($value);
34
        }
35
    }
36
37
    /**
38
     * Parse a boolean.
39
     *
40
     * @param bool|null $value The boolean value.
41
     * @return int Returns 1 in case of success, 0 otherwise.
42
     */
43
    public static function parseBoolean(?bool $value): int {
44
        return $value === true ? 1 : 0;
45
    }
46
47
    /**
48
     * Parse a string.
49
     *
50
     * @param string|null $value The string value.
51
     * @return int|null Returns the integer in case of success, null otherwise.
52
     * @throws IntegerArgumentException Throws an integer argument exception if the string value does not represent an integer.
53
     */
54
    public static function parseString(?string $value): ?int {
55
        if (null === $value) {
56
            return null;
57
        }
58
        if (0 === preg_match("/^-?[0-9]+$/", $value)) {
59
            throw new IntegerArgumentException($value);
60
        }
61
        return intval($value);
62
    }
63
}
64