Вы там не ответили людям, которые попросили ответ команды
только намекает, что нет смысла валидировать адрес почты, прочитайте про стандарт RFC 5322 и 6854, и используйте готовую библиотеку, иначе не проверяйте совсем, либо достаточно проверить только на символ @ (для чего не нужно создавать ни какой библиотеки)
<?php
require_once('vendor/autoload.php');
try {
$app = new App\Application();
$app->run();
}
catch(Exception $e) {
App\Response::generateBadRequestResponse($e->getMessage());
}
<?php
namespace Validators;
class MailValidator
{
private $regExp = '/^(([\wА-Яа-я]{1,})@([\wА-Яа-я]{1,}\.)+[A-Za-zА-Яа-я]{2,})$/ui';
private $mailAddress;
public function validate($mailAddress)
{
$this->mailAddress = $mailAddress;
if($this->validateMailAddress()) {
if ($this->checkMXRecord()) {
throw new \Exception('Mail is valid');
}
}
throw new \Exception('Mail is invalid');
}
private function validateMailAddress()
{
return preg_match($this->regExp, $this->mailAddress);
}
private function checkMxRecord()
{
$arMailAddress = explode('@', $this->mailAddress);
return getmxrr($arMailAddress[1], $hosts);
}
}
<?php
namespace App;
use Validators\MailValidator;
class Application
{
private $request;
public function __construct()
{
if (!RequestValidator::checkRequestType('POST')) {
throw new \Exception('Wrong request method');
}
if (RequestValidator::checkRequestIsEmpty($_POST)) {
throw new \Exception('Empty request');
}
$this->request = $_POST;
}
public function run()
{
$mailValidator = new MailValidator();
echo $mailValidator->validate($this->request['EMAIL']);
}
}
Может так
Может надо задать namespace в файле класса
<?php
namespace Validators;
class MailValidator
{
private $regExp = '/^(([\wА-Яа-я]{1,})@([\wА-Яа-я]{1,}\.)+[A-Za-zА-Яа-я]{2,})$/ui';
private $mailAddress;
public function validate($mailAddress)
{
$this->mailAddress = $mailAddress;
if($this->validateMailAddress()) {
if ($this->checkMXRecord()) {
throw new \Exception('Mail is valid');
}
}
throw new \Exception('Mail is invalid');
}
private function validateMailAddress()
{
return preg_match($this->regExp, $this->mailAddress);
}
private function checkMxRecord()
{
$arMailAddress = explode('@', $this->mailAddress);
return getmxrr($arMailAddress[1], $hosts);
}
}
Или же, если это ваш класс, то переместить в папку "app_src"