Completed
Push — master ( 5885a6...6ce89f )
by Alec
05:07
created

env()   A

Complexity

Conditions 6
Paths 10

Size

Total Lines 24
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 17
CRAP Score 6

Importance

Changes 2
Bugs 0 Features 1
Metric Value
cc 6
eloc 17
nc 10
nop 2
dl 0
loc 24
ccs 17
cts 17
cp 1
crap 6
rs 9.0777
c 2
b 0
f 1
1
<?php
2
/**
3
 * User: alec
4
 * Date: 12.10.18
5
 * Time: 13:21
6
 */
7
8
if (!function_exists('env')) {
9
    if (!\defined('STRING_TRUE')) {
10
        define('STRING_TRUE', 'true');
11
    }
12
    if (!\defined('STRING_FALSE')) {
13
        define('STRING_FALSE', 'false');
14
    }
15
    if (!\defined('STRING_EMPTY')) {
16
        define('STRING_EMPTY', 'empty');
17
    }
18
    if (!\defined('STRING_NULL')) {
19
        define('STRING_NULL', 'null');
20
    }
21
22
    /**
23
     * Gets the value of an environment variable.
24
     *
25
     * @param  string $key
26
     * @param  mixed $default
27
     * @return mixed
28
     */
29
    function env($key, $default = null)
30
    {
31 38
        if (false === $value = getenv($key)) {
32 18
            $value = value($default);
33
        }
34
35 38
        $value = \ltrim(\rtrim($value, ')"'), '("');
36
37 38
        switch (strtolower($value)) {
38 38
            case STRING_TRUE:
39 4
                $value = true;
40 4
                break;
41 34
            case STRING_FALSE:
42 4
                $value = false;
43 4
                break;
44 30
            case STRING_EMPTY:
45 4
                $value = '';
46 4
                break;
47 26
            case STRING_NULL:
48 4
                $value = null;
49 4
                break;
50
        }
51
52 38
        return $value;
53
    }
54
}
55
56
if (!function_exists('value')) {
57
    /**
58
     * Return the default value of the given value.
59
     *
60
     * @param  mixed $value
61
     * @return mixed
62
     */
63
    function value($value)
64
    {
65
        return
66 18
            $value instanceof Closure ?
67 18
                $value() : $value;
68
    }
69
}
70