50 lines
		
	
	
		
			957 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			957 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Egulias\EmailValidator\Validation;
 | |
| 
 | |
| use Egulias\EmailValidator\EmailLexer;
 | |
| use Egulias\EmailValidator\EmailParser;
 | |
| use Egulias\EmailValidator\Exception\InvalidEmail;
 | |
| 
 | |
| class RFCValidation implements EmailValidation
 | |
| {
 | |
|     /**
 | |
|      * @var EmailParser
 | |
|      */
 | |
|     private $parser;
 | |
| 
 | |
|     /**
 | |
|      * @var array
 | |
|      */
 | |
|     private $warnings = [];
 | |
| 
 | |
|     /**
 | |
|      * @var InvalidEmail
 | |
|      */
 | |
|     private $error;
 | |
| 
 | |
|     public function isValid($email, EmailLexer $emailLexer)
 | |
|     {
 | |
|         $this->parser = new EmailParser($emailLexer);
 | |
|         try {
 | |
|             $this->parser->parse((string)$email);
 | |
|         } catch (InvalidEmail $invalid) {
 | |
|             $this->error = $invalid;
 | |
|             return false;
 | |
|         }
 | |
| 
 | |
|         $this->warnings = $this->parser->getWarnings();
 | |
|         return true;
 | |
|     }
 | |
| 
 | |
|     public function getError()
 | |
|     {
 | |
|         return $this->error;
 | |
|     }
 | |
| 
 | |
|     public function getWarnings()
 | |
|     {
 | |
|         return $this->warnings;
 | |
|     }
 | |
| }
 | 
