2021-11-22 06:51:10 +00:00
|
|
|
|
<?php
|
|
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2020-2021 Антон Аксенов (Anthony Axenov)
|
|
|
|
|
*
|
|
|
|
|
* This code is licensed under MIT.
|
|
|
|
|
* Этот код распространяется по лицензии MIT.
|
|
|
|
|
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
declare(strict_types = 1);
|
|
|
|
|
|
|
|
|
|
namespace AtolOnline\Exceptions;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Исключение, возникающее при попытке указать слишком длинное что-либо
|
|
|
|
|
*/
|
|
|
|
|
class TooLongException extends AtolException
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* @var string Сообщение об ошибке
|
|
|
|
|
*/
|
|
|
|
|
protected $message = 'Слишком длинное значение';
|
|
|
|
|
|
|
|
|
|
/**
|
2021-11-23 17:30:54 +00:00
|
|
|
|
* @var float Максимальная длина строки
|
2021-11-22 06:51:10 +00:00
|
|
|
|
*/
|
2021-11-23 17:30:54 +00:00
|
|
|
|
protected float $max = 0;
|
2021-11-22 06:51:10 +00:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Конструктор
|
|
|
|
|
*
|
|
|
|
|
* @param string $value
|
|
|
|
|
* @param string $message
|
|
|
|
|
* @param int $max
|
|
|
|
|
*/
|
|
|
|
|
public function __construct(string $value, string $message = '', int $max = 0)
|
|
|
|
|
{
|
|
|
|
|
$message = ($message ?: $this->message) . ': '. $value;
|
|
|
|
|
if ($max > 0 || $this->max > 0) {
|
|
|
|
|
$message .= ' (макс. = ' . ($max ?? $this->max) . ', фактически = ' . mb_strlen($value) . ')';
|
|
|
|
|
}
|
|
|
|
|
parent::__construct($message);
|
|
|
|
|
}
|
|
|
|
|
}
|