Passed
Push — master ( f8e643...945669 )
by Sam
02:11
created

RDataTypes::getTypes()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 2
1
<?php
2
3
namespace Badcow\DNS\Parser;
4
5
class RDataTypes
6
{
7
    /**
8
     * @var array
9
     */
10
    private static $names = [
11
        self::TYPE_A,
12
        self::TYPE_NS,
13
        self::TYPE_CNAME,
14
        self::TYPE_SOA,
15
        self::TYPE_PTR,
16
        self::TYPE_MX,
17
        self::TYPE_TXT,
18
        self::TYPE_AAAA,
19
        self::TYPE_OPT,
20
        self::TYPE_AXFR,
21
        self::TYPE_ANY,
22
        self::TYPE_AFSDB,
23
        self::TYPE_APL,
24
        self::TYPE_CAA,
25
        self::TYPE_CDNSKEY,
26
        self::TYPE_CDS,
27
        self::TYPE_CERT,
28
        self::TYPE_DHCID,
29
        self::TYPE_DLV,
30
        self::TYPE_DNSKEY,
31
        self::TYPE_DS,
32
        self::TYPE_IPSECKEY,
33
        self::TYPE_KEY,
34
        self::TYPE_KX,
35
        self::TYPE_LOC,
36
        self::TYPE_NAPTR,
37
        self::TYPE_NSEC,
38
        self::TYPE_NSEC3,
39
        self::TYPE_NSEC3PARAM,
40
        self::TYPE_RRSIG,
41
        self::TYPE_RP,
42
        self::TYPE_SIG,
43
        self::TYPE_SRV,
44
        self::TYPE_SSHFP,
45
        self::TYPE_TA,
46
        self::TYPE_TKEY,
47
        self::TYPE_TLSA,
48
        self::TYPE_TSIG,
49
        self::TYPE_URI,
50
        self::TYPE_DNAME,
51
    ];
52
53
    public const TYPE_A = 'A';
54
    public const TYPE_NS = 'NS';
55
    public const TYPE_CNAME = 'CNAME';
56
    public const TYPE_SOA = 'SOA';
57
    public const TYPE_PTR = 'PTR';
58
    public const TYPE_MX = 'MX';
59
    public const TYPE_TXT = 'TXT';
60
    public const TYPE_AAAA = 'AAAA';
61
    public const TYPE_OPT = 'OPT';
62
    public const TYPE_AXFR = 'AXFR';
63
    public const TYPE_ANY = 'ANY';
64
    public const TYPE_AFSDB = 'AFSDB';
65
    public const TYPE_APL = 'APL';
66
    public const TYPE_CAA = 'CAA';
67
    public const TYPE_CDNSKEY = 'CDNSKEY';
68
    public const TYPE_CDS = 'CDS';
69
    public const TYPE_CERT = 'CERT';
70
    public const TYPE_DHCID = 'DHCID';
71
    public const TYPE_DLV = 'DLV';
72
    public const TYPE_DNSKEY = 'DNSKEY';
73
    public const TYPE_DS = 'DS';
74
    public const TYPE_IPSECKEY = 'IPSECKEY';
75
    public const TYPE_KEY = 'KEY';
76
    public const TYPE_KX = 'KX';
77
    public const TYPE_LOC = 'LOC';
78
    public const TYPE_NAPTR = 'NAPTR';
79
    public const TYPE_NSEC = 'NSEC';
80
    public const TYPE_NSEC3 = 'NSEC3';
81
    public const TYPE_NSEC3PARAM = 'NSEC3PARAM';
82
    public const TYPE_RRSIG = 'RRSIG';
83
    public const TYPE_RP = 'RP';
84
    public const TYPE_SIG = 'SIG';
85
    public const TYPE_SRV = 'SRV';
86
    public const TYPE_SSHFP = 'SSHFP';
87
    public const TYPE_TA = 'TA';
88
    public const TYPE_TKEY = 'TKEY';
89
    public const TYPE_TLSA = 'TLSA';
90
    public const TYPE_TSIG = 'TSIG';
91
    public const TYPE_URI = 'URI';
92
    public const TYPE_DNAME = 'DNAME';
93
94
    /**
95
     * @param string $type
96
     *
97
     * @return bool
98
     */
99 3
    public static function isValid(string $type): bool
100
    {
101 3
        return false !== array_search($type, self::$names);
102
    }
103
104
    /**
105
     * @return array An array of all valid RDATA types
106
     */
107
    public static function getTypes(): array
108
    {
109
        return self::$names;
110
    }
111
}
112