Files
kiri-validator/LengthValidator.php
T
2023-12-19 14:51:13 +08:00

70 lines
1.4 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: whwyy
* Date: 2018/4/3 0003
* Time: 17:04
*/
declare(strict_types=1);
namespace validator;
class LengthValidator extends BaseValidator
{
const string MAX_LENGTH = 'max';
const string MIN_LENGTH = 'min';
/**
* @var string
*/
public string $method = 'default';
/**
* @param mixed $value
* @return bool
*/
public function trigger(mixed $value): bool
{
return match ($this->method) {
self::MAX_LENGTH => $this->maxLength((string)$value),
self::MIN_LENGTH => $this->minLength((string)$value),
default => $this->defaultLength((string)$value),
};
}
/**
* @param string $value
* @return bool
*
* 效验长度是否大于最大长度
*/
private function maxLength(string $value): bool
{
return mb_strlen($value) <= $this->value;
}
/**
* @param string $value
* @return bool
*
* 效验长度是否小于最小长度
*/
private function minLength(string $value): bool
{
return mb_strlen($value) >= $this->value;
}
/**
* @param string $value
* @return bool
*
* 效验长度是否小于最小长度
*/
private function defaultLength(string $value): bool
{
return mb_strlen($value) == $this->value;
}
}