56 lines
1.4 KiB
PHP
56 lines
1.4 KiB
PHP
|
<?php
|
|||
|
/**
|
|||
|
* Copyright (c) Антон Аксенов (aka Anthony Axenov)
|
|||
|
*
|
|||
|
* This code is licensed under MIT.
|
|||
|
* Этот код распространяется по лицензии MIT.
|
|||
|
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
|||
|
*/
|
|||
|
|
|||
|
namespace AtolOnline\Traits;
|
|||
|
|
|||
|
use AtolOnline\{Exceptions\AtolEmailTooLongException, Exceptions\AtolEmailValidateException};
|
|||
|
|
|||
|
/**
|
|||
|
* Добавляет объекту функционал для работы с email
|
|||
|
*
|
|||
|
* @package AtolOnline\Traits
|
|||
|
*/
|
|||
|
trait HasEmail
|
|||
|
{
|
|||
|
/**
|
|||
|
* @var string Почта
|
|||
|
*/
|
|||
|
protected $email;
|
|||
|
|
|||
|
/**
|
|||
|
* Возвращает установленную почту. Тег ФФД: 1008, 1117.
|
|||
|
*
|
|||
|
* @return string
|
|||
|
*/
|
|||
|
public function getEmail()
|
|||
|
{
|
|||
|
return $this->email;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Устанавливает почту. Тег ФФД: 1008, 1117.
|
|||
|
*
|
|||
|
* @param string $email
|
|||
|
* @return $this
|
|||
|
* @throws AtolEmailTooLongException
|
|||
|
* @throws AtolEmailValidateException
|
|||
|
*/
|
|||
|
public function setEmail(string $email)
|
|||
|
{
|
|||
|
$email = trim($email);
|
|||
|
if (strlen($email) > 64) {
|
|||
|
throw new AtolEmailTooLongException($email, 64);
|
|||
|
}
|
|||
|
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
|||
|
throw new AtolEmailValidateException($email);
|
|||
|
}
|
|||
|
$this->email = $email;
|
|||
|
return $this;
|
|||
|
}
|
|||
|
}
|