Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Egulias\EmailValidator\Validation\Extra;
4
 
5
use \Spoofchecker;
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
    public function __construct()
19
    {
20
        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
    public function isValid(string $email, EmailLexer $emailLexer) : bool
29
    {
30
        $checker = new Spoofchecker();
31
        $checker->setChecks(Spoofchecker::SINGLE_SCRIPT);
32
 
33
        if ($checker->isSuspicious($email)) {
34
            $this->error = new SpoofEmail();
35
        }
36
 
37
        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
}