SpoofCheckValidation   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Test Coverage

Coverage 61.53%

Importance

Changes 0
Metric Value
eloc 11
c 0
b 0
f 0
dl 0
loc 40
ccs 8
cts 13
cp 0.6153
rs 10
wmc 6

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 2
A getError() 0 3 1
A getWarnings() 0 3 1
A isValid() 0 10 2
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