You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.2 KiB
67 lines
1.2 KiB
<?php |
|
|
|
namespace Egulias\EmailValidator; |
|
|
|
use Egulias\EmailValidator\Exception\InvalidEmail; |
|
use Egulias\EmailValidator\Validation\EmailValidation; |
|
|
|
class EmailValidator |
|
{ |
|
/** |
|
* @var EmailLexer |
|
*/ |
|
private $lexer; |
|
|
|
/** |
|
* @var array |
|
*/ |
|
protected $warnings; |
|
|
|
/** |
|
* @var InvalidEmail |
|
*/ |
|
protected $error; |
|
|
|
public function __construct() |
|
{ |
|
$this->lexer = new EmailLexer(); |
|
} |
|
|
|
/** |
|
* @param $email |
|
* @param EmailValidation $emailValidation |
|
* @return bool |
|
*/ |
|
public function isValid($email, EmailValidation $emailValidation) |
|
{ |
|
$isValid = $emailValidation->isValid($email, $this->lexer); |
|
$this->warnings = $emailValidation->getWarnings(); |
|
$this->error = $emailValidation->getError(); |
|
|
|
return $isValid; |
|
} |
|
|
|
/** |
|
* @return boolean |
|
*/ |
|
public function hasWarnings() |
|
{ |
|
return !empty($this->warnings); |
|
} |
|
|
|
/** |
|
* @return array |
|
*/ |
|
public function getWarnings() |
|
{ |
|
return $this->warnings; |
|
} |
|
|
|
/** |
|
* @return InvalidEmail |
|
*/ |
|
public function getError() |
|
{ |
|
return $this->error; |
|
} |
|
}
|
|
|