Root Zanli
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
o5t6x7pgljbm
/
public_html
/
vendor
/
egulias
/
email-validator
/
src
/
Validation
/
Filename :
RFCValidation.php
back
Copy
<?php namespace Egulias\EmailValidator\Validation; use Egulias\EmailValidator\EmailLexer; use Egulias\EmailValidator\EmailParser; use Egulias\EmailValidator\Result\InvalidEmail; use Egulias\EmailValidator\Result\Reason\ExceptionFound; use Egulias\EmailValidator\Warning\Warning; class RFCValidation implements EmailValidation { /** * @var EmailParser|null */ private $parser; /** * @var Warning[] */ private array $warnings = []; /** * @var ?InvalidEmail */ private $error; public function isValid(string $email, EmailLexer $emailLexer): bool { $this->parser = new EmailParser($emailLexer); try { $result = $this->parser->parse($email); $this->warnings = $this->parser->getWarnings(); if ($result->isInvalid()) { /** @psalm-suppress PropertyTypeCoercion */ $this->error = $result; return false; } } catch (\Exception $invalid) { $this->error = new InvalidEmail(new ExceptionFound($invalid), ''); return false; } return true; } public function getError(): ?InvalidEmail { return $this->error; } /** * @return Warning[] */ public function getWarnings(): array { return $this->warnings; } }