-
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Mechanism.php
73 lines (62 loc) · 1.62 KB
/
Mechanism.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
declare(strict_types=1);
namespace SPFLib\Term;
use SPFLib\Term;
/**
* Class that any SPF record mechanism must implement.
*/
abstract class Mechanism implements Term
{
/**
* Modifier qualifier: pass.
*
* @var string
*/
public const QUALIFIER_PASS = '+';
/**
* Modifier qualifier: fail.
*
* @var string
*/
public const QUALIFIER_FAIL = '-';
/**
* Modifier qualifier: softfail.
*
* @var string
*/
public const QUALIFIER_SOFTFAIL = '~';
/**
* Modifier qualifier: neutral.
*
* @var string
*/
public const QUALIFIER_NEUTRAL = '?';
/**
* The qualifier of this mechanism (the value of one of the Mechanism::QUALIFIER_... constants).
*
* @var string
*/
private $qualifier;
/**
* Initialize the instance.
*
* @param string $qualifier the qualifier of this mechanism (the value of one of the Mechanism::QUALIFIER_... constants)
*/
protected function __construct(string $qualifier)
{
$this->qualifier = $qualifier;
}
/**
* Get the name of the modifier (the part before ':' or '/').
*/
abstract public function getName(): string;
/**
* Get the qualifier of this mechanism (the value of one of the Mechanism::QUALIFIER_... constants).
*
* @param bool $emptyIfInclude use true to return an empty string if the qualifier is QUALIFIER_PASS
*/
public function getQualifier(bool $emptyIfPass = false): string
{
return $emptyIfPass && $this->qualifier === static::QUALIFIER_PASS ? '' : $this->qualifier;
}
}