68 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?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;
 | |
|     }
 | |
| }
 | 
