Text::isValid()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 5
c 0
b 0
f 0
rs 9.4285
cc 1
eloc 2
nc 1
nop 1
1
<?php declare(strict_types = 1);
2
3
4
namespace Console\Modifier;
5
6
7
class Text extends Modifier
8
{
9
    public CONST BOLD         = 'bold';
10
11
    public CONST DIM          = 'dim';
12
13
    public CONST BLACK        = 'black';
14
15
    public CONST DARK_GREY    = 'dark_gray';
16
17
    public CONST BLUE         = 'blue';
18
19
    public CONST LIGHT_BLUE   = 'light_blue';
20
21
    public CONST GREEN        = 'green';
22
23
    public CONST LIGHT_GREEN  = 'light_green';
24
25
    public CONST CYAN         = 'cyan';
26
27
    public CONST LIGHT_CYAN   = 'light_cyan';
28
29
    public CONST RED          = 'red';
30
31
    public CONST LIGHT_RED    = 'light_red';
32
33
    public CONST PURPLE       = 'purple';
34
35
    public CONST LIGHT_PURPLE = 'light_purple';
36
37
    public CONST BROWN        = 'brown';
38
39
    public CONST YELLOW       = 'yellow';
40
41
    public CONST LIGHT_GRAY   = 'light_gray';
42
43
    public CONST WHITE        = 'white';
44
45
    public CONST NORMAL       = 'normal';
46
47
    public static $modifier_symbol = [
48
        self::BOLD         => '1',
49
        self::DIM          => '2',
50
        self::BLACK        => '0;30',
51
        self::DARK_GREY    => '1;30',
52
        self::BLUE         => '0;34',
53
        self::LIGHT_BLUE   => '1;34',
54
        self::GREEN        => '0;32',
55
        self::LIGHT_GREEN  => '1;32',
56
        self::CYAN         => '0;36',
57
        self::LIGHT_CYAN   => '1;36',
58
        self::RED          => '0;31',
59
        self::LIGHT_RED    => '1;31',
60
        self::PURPLE       => '0;35',
61
        self::LIGHT_PURPLE => '1;35',
62
        self::BROWN        => '0;33',
63
        self::YELLOW       => '1;33',
64
        self::LIGHT_GRAY   => '0;37',
65
        self::WHITE        => '1;37',
66
        self::NORMAL       => '0;39',
67
    ];
68
69
    /**
70
     * Returns specific symbol for output modification in console
71
     *
72
     * @param string $color
73
     *
74
     * @return string
75
     */
76
    public static function getSymbol(string $color): ?string
77
    {
78
        if (self::isValid($color)) {
79
            return self::$modifier_symbol[$color];
80
        }
81
82
        return null;
83
    }
84
85
    /**
86
     * Method validates whether ot not color is valid
87
     *
88
     * @param string $color
89
     *
90
     * @return bool
91
     */
92
    public static function isValid(string $color): bool
93
    {
94
        $constants = self::getAll(__CLASS__);
95
96
        return \in_array($color, $constants, true);
97
98
    }
99
}