SpoofCheckValidation::getWarnings()   A
last analyzed

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
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 0
cts 2
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Egulias\EmailValidator\Validation\Extra;
4
5
use \Spoofchecker;
0 ignored issues
show
Bug introduced by
The type \Spoofchecker was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
6
use Egulias\EmailValidator\EmailLexer;
7
use Egulias\EmailValidator\Result\SpoofEmail;
8
use Egulias\EmailValidator\Result\InvalidEmail;
9
use Egulias\EmailValidator\Validation\EmailValidation;
10
11
class SpoofCheckValidation implements EmailValidation
12
{
13
    /**
14
     * @var InvalidEmail|null
15
     */
16
    private $error;
17
18 5
    public function __construct()
19
    {
20 5
        if (!extension_loaded('intl')) {
21
            throw new \LogicException(sprintf('The %s class requires the Intl extension.', __CLASS__));
22
        }
23
    }
24
25
    /**
26
     * @psalm-suppress InvalidArgument
27
     */
28 5
    public function isValid(string $email, EmailLexer $emailLexer) : bool
29
    {
30 5
        $checker = new Spoofchecker();
31 5
        $checker->setChecks(Spoofchecker::SINGLE_SCRIPT);
32
33 5
        if ($checker->isSuspicious($email)) {
34 1
            $this->error = new SpoofEmail();
35
        }
36
37 5
        return $this->error === null;
38
    }
39
40
    /**
41
     * @return InvalidEmail
42
     */
43
    public function getError() : ?InvalidEmail
44
    {
45
        return $this->error;
46
    }
47
48
    public function getWarnings() : array
49
    {
50
        return [];
51
    }
52
}
53