FeipAPI/Mirzaev/Feip/Params/Email.php

54 lines
1.3 KiB
PHP
Raw Normal View History

2020-10-02 21:11:19 +07:00
<?php
declare(strict_types=1);
namespace Mirzaev\Feip\Params;
use Mirzaev\Feip\Error;
/**
* Параметр почты
*
* @property string $email Почта
*
* @package Mirzaev\Feip\Params
* @author Арсен Мирзаев <red@hood.su>
*/
trait Email
{
/**
* Почта: параметр
*
* @var string
*/
protected string $email = '';
/**
* Почта: фильтр
*
* @param string|int|float $target Значение для фильтрации
*
* @return string|null
*/
public static function email($target): ?string
{
// Очистка
if ($sanitized = filter_var($target, FILTER_SANITIZE_EMAIL)) {
// Если очищение вернуло результат
// Проверка
if ($sanitized !== $target || !preg_match("/[0-9A-z]+@[A-z]+\.[A-z]+/", $sanitized)) {
// Если очищенное значение не совпадает с отправленным
// или если не совпадает с паттерном "email"
new Error(200, __FUNCTION__);
}
return (string) $sanitized;
} else {
new Error(200, __FUNCTION__);
}
return null;
}
}