Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 00a53ba0f3 | |||
| 011e0cd9b8 | |||
| a7531432d4 | |||
| 76bd050ada | |||
| 0e6a1b5ba2 | |||
| 10aa70eb03 | |||
| b80833691e | |||
| 4ac84b3edf | |||
| 8e8bd0bd43 | |||
| a1c7907146 |
@@ -24,14 +24,13 @@ class ArrayValidator extends BaseValidator
|
|||||||
*/
|
*/
|
||||||
public function trigger(): bool
|
public function trigger(): bool
|
||||||
{
|
{
|
||||||
$param = $this->getParams();
|
if (empty($this->params)) {
|
||||||
if (empty($param) || !is_array($param)) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (!isset($param[$this->field])) {
|
if (!isset($this->params[$this->field])) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (!is_array($param[$this->field])) {
|
if (!is_array($this->params[$this->field])) {
|
||||||
return $this->addError("The param :attribute must a array");
|
return $this->addError("The param :attribute must a array");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -66,12 +66,12 @@ abstract class BaseValidator
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws Exception
|
|
||||||
* @return bool
|
* @return bool
|
||||||
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function trigger(): bool
|
public function trigger(): bool
|
||||||
{
|
{
|
||||||
throw new Exception('Child Class must define method of trigger');
|
throw new Exception('Child Class must define method of trigger');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -83,11 +83,14 @@ abstract class BaseValidator
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $data
|
* @param array|null $data
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function setParams(array $data): static
|
public function setParams(?array $data): static
|
||||||
{
|
{
|
||||||
|
if (is_null($data)) {
|
||||||
|
$data = [];
|
||||||
|
}
|
||||||
$this->params = $data;
|
$this->params = $data;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,26 +25,19 @@ class DateTimeValidator extends BaseValidator
|
|||||||
*/
|
*/
|
||||||
public function trigger(): bool
|
public function trigger(): bool
|
||||||
{
|
{
|
||||||
$param = $this->getParams();
|
if (empty($this->params)) {
|
||||||
if (empty($param) || !is_array($param)) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (!isset($param[$this->field]) || empty($param[$this->field])) {
|
if (!isset($this->params[$this->field]) || empty($this->params[$this->field])) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
$value = $param[$this->field];
|
return match (strtolower($this->method)) {
|
||||||
switch (strtolower($this->method)) {
|
self::DATE => $this->validatorDate($this->params[$this->field]),
|
||||||
case self::DATE:
|
self::DATE_TIME => $this->validateDatetime($this->params[$this->field]),
|
||||||
return $this->validatorDate($value);
|
self::TIME => $this->validatorTime($this->params[$this->field]),
|
||||||
case self::DATE_TIME:
|
self::STR_TO_TIME => $this->validatorTimestamp($this->params[$this->field]),
|
||||||
return $this->validateDatetime($value);
|
default => true,
|
||||||
case self::TIME:
|
};
|
||||||
return $this->validatorTime($value);
|
|
||||||
case self::STR_TO_TIME:
|
|
||||||
return $this->validatorTimestamp($value);
|
|
||||||
default:
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+7
-10
@@ -12,24 +12,21 @@ namespace validator;
|
|||||||
|
|
||||||
class EmailValidator extends BaseValidator
|
class EmailValidator extends BaseValidator
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return bool
|
* @return bool
|
||||||
* 检查是否存在
|
* 检查是否存在
|
||||||
*/
|
*/
|
||||||
public function trigger(): bool
|
public function trigger(): bool
|
||||||
{
|
{
|
||||||
$param = $this->getParams();
|
if (empty($this->params) || !isset($this->params[$this->field])) {
|
||||||
if (empty($param) || !isset($param[$this->field])) {
|
return true;
|
||||||
|
}
|
||||||
|
if (preg_match('/^[a-zA-Z0-9]+([\.\_]{1,})[a-zA-Z0-9]+@[a-zA-Z]+(\.\w+)+/', $this->params[$this->field])) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
$value = $param[$this->field];
|
return $this->addError('The param :attribute format error');
|
||||||
if (preg_match('/^[a-zA-Z0-9]+([\.\_]{1,})[a-zA-Z0-9]+@[a-zA-Z]+(\.\w+)+/', $value)) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return $this->addError('The param :attribute format error');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,26 +30,21 @@ class EmptyValidator extends BaseValidator
|
|||||||
*/
|
*/
|
||||||
public function trigger(): bool
|
public function trigger(): bool
|
||||||
{
|
{
|
||||||
$param = $this->getParams();
|
if (empty($this->params) || !isset($this->params[$this->field])) {
|
||||||
if (empty($param) || !isset($param[$this->field])) {
|
|
||||||
return $this->addError(':attribute not exists');
|
return $this->addError(':attribute not exists');
|
||||||
}
|
}
|
||||||
|
|
||||||
$value = $param[$this->field];
|
|
||||||
|
|
||||||
switch (strtolower($this->method)) {
|
switch (strtolower($this->method)) {
|
||||||
case self::CAN_NOT_EMPTY:
|
case self::CAN_NOT_EMPTY:
|
||||||
if (strlen($value) < 1) {
|
if (strlen($this->params[$this->field]) < 1) {
|
||||||
return $this->addError('The :attribute can not empty.');
|
return $this->addError('The :attribute can not empty.');
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case self::CAN_NOT_NULL:
|
case self::CAN_NOT_NULL:
|
||||||
if ($value === null) {
|
if ($this->params[$this->field] === null) {
|
||||||
return $this->addError('The :attribute can not is null.');
|
return $this->addError('The :attribute can not is null.');
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-10
@@ -20,22 +20,15 @@ class EnumValidator extends BaseValidator
|
|||||||
*/
|
*/
|
||||||
public function trigger(): bool
|
public function trigger(): bool
|
||||||
{
|
{
|
||||||
$param = $this->getParams();
|
if (empty($this->params) || !isset($this->params[$this->field])) {
|
||||||
if (empty($param) || !isset($param[$this->field])) {
|
|
||||||
return $this->addError('The param :attribute is null');
|
return $this->addError('The param :attribute is null');
|
||||||
}
|
}
|
||||||
$value = $param[$this->field];
|
if (is_null($this->params[$this->field])) {
|
||||||
if (is_null($value)) {
|
|
||||||
return $this->addError('The param :attribute is null');
|
return $this->addError('The param :attribute is null');
|
||||||
}
|
}
|
||||||
|
if (!in_array($this->params[$this->field], $this->value)) {
|
||||||
if (!is_array($this->value)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (!in_array($value, $this->value)) {
|
|
||||||
return $this->addError($this->i());
|
return $this->addError($this->i());
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,20 +24,13 @@ class IntegerValidator extends BaseValidator
|
|||||||
*/
|
*/
|
||||||
public function trigger(): bool
|
public function trigger(): bool
|
||||||
{
|
{
|
||||||
$param = $this->getParams();
|
if (empty($this->params) || !isset($this->params[$this->field])) {
|
||||||
if (empty($param) || !isset($param[$this->field])) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if ($this->type !== self::MIN && $this->params[$this->field] < $this->value) {
|
||||||
$value = $param[$this->field] ?? null;
|
|
||||||
if ($value === null) {
|
|
||||||
return $this->addError('The :attribute can not is null.');
|
|
||||||
}
|
|
||||||
if ($this->type !== self::MIN && $value < $this->value) {
|
|
||||||
return $this->addError('The ' . $this->field . ' cannot be less than the default value.');
|
return $this->addError('The ' . $this->field . ' cannot be less than the default value.');
|
||||||
}
|
}
|
||||||
|
if ($this->type !== self::MAX && $this->params[$this->field] > $this->value) {
|
||||||
if ($this->type !== self::MAX && $value > $this->value) {
|
|
||||||
return $this->addError('The ' . $this->field . ' cannot be greater than the default value.');
|
return $this->addError('The ' . $this->field . ' cannot be greater than the default value.');
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -25,22 +25,17 @@ class LengthValidator extends BaseValidator
|
|||||||
*/
|
*/
|
||||||
public function trigger(): bool
|
public function trigger(): bool
|
||||||
{
|
{
|
||||||
$param = $this->getParams();
|
if (empty($this->params) || !isset($this->params[$this->field])) {
|
||||||
if (empty($param) || !isset($param[$this->field])) {
|
|
||||||
if ($this->method != self::MAX_LENGTH) {
|
if ($this->method != self::MAX_LENGTH) {
|
||||||
return $this->addError('The param :attribute not exists');
|
return $this->addError('The param :attribute not exists');
|
||||||
} else {
|
} else {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$value = $param[$this->field];
|
|
||||||
if (is_null($value)) {
|
|
||||||
return $this->addError('The param :attribute is null');
|
|
||||||
}
|
|
||||||
return match (strtolower($this->method)) {
|
return match (strtolower($this->method)) {
|
||||||
self::MAX_LENGTH => $this->maxLength($value),
|
self::MAX_LENGTH => $this->maxLength($this->params[$this->field]),
|
||||||
self::MIN_LENGTH => $this->minLength($value),
|
self::MIN_LENGTH => $this->minLength($this->params[$this->field]),
|
||||||
default => $this->defaultLength($value),
|
default => $this->defaultLength($this->params[$this->field]),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,11 +19,7 @@ class RequiredValidator extends BaseValidator
|
|||||||
*/
|
*/
|
||||||
public function trigger(): bool
|
public function trigger(): bool
|
||||||
{
|
{
|
||||||
$param = $this->getParams();
|
if (!isset($this->params[$this->field])) {
|
||||||
if (is_numeric($param)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (empty($param) || !isset($param[$this->field])) {
|
|
||||||
return $this->addError('The param :attribute not exists');
|
return $this->addError('The param :attribute not exists');
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -46,21 +46,13 @@ class TypesOfValidator extends BaseValidator
|
|||||||
if (!in_array($this->method, $this->types)) {
|
if (!in_array($this->method, $this->types)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (empty($this->params) || !isset($this->params[$this->field])) {
|
||||||
$param = $this->getParams();
|
|
||||||
if (empty($param) || !isset($param[$this->field])) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if ($this->params[$this->field] === null) {
|
||||||
$value = $param[$this->field];
|
|
||||||
|
|
||||||
$method = $this->method . 'Format';
|
|
||||||
|
|
||||||
if ($value === null) {
|
|
||||||
return $this->addError('This ' . $this->field . ' is not an empty data.');
|
return $this->addError('This ' . $this->field . ' is not an empty data.');
|
||||||
}
|
}
|
||||||
|
return $this->{$this->method . 'Format'}($this->params[$this->field]);
|
||||||
return $this->{$method}($value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -28,12 +28,10 @@ class UniqueValidator extends BaseValidator
|
|||||||
if (empty($this->model)) {
|
if (empty($this->model)) {
|
||||||
return $this->addError('Model error.');
|
return $this->addError('Model error.');
|
||||||
}
|
}
|
||||||
|
if (!$this->model->getIsNowExample()) {
|
||||||
$model = $this->model;
|
|
||||||
if (!$this->model->getIsCreate()) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if ($model::query()->where([$this->field => $param[$this->field]])->exists()) {
|
if ($this->model::query()->where([$this->field => $param[$this->field]])->exists()) {
|
||||||
return $this->addError('The :attribute \'' . $param[$this->field] . '\' is exists!');
|
return $this->addError('The :attribute \'' . $param[$this->field] . '\' is exists!');
|
||||||
}
|
}
|
||||||
return $this->isFail = TRUE;
|
return $this->isFail = TRUE;
|
||||||
|
|||||||
+7
-8
@@ -168,11 +168,10 @@ class Validator extends BaseValidator
|
|||||||
if (!isset($this->classMap[$type])) {
|
if (!isset($this->classMap[$type])) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$constr = array_merge($this->classMap[$type], $define, [
|
$this->validators[] = array_merge($this->classMap[$type], $define, [
|
||||||
'params' => $param,
|
'params' => $param,
|
||||||
'model' => $model
|
'model' => $model
|
||||||
]);
|
]);
|
||||||
$this->validators[] = $constr;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,16 +185,16 @@ class Validator extends BaseValidator
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
foreach ($this->validators as $val) {
|
foreach ($this->validators as $val) {
|
||||||
if ($this->check($val)) {
|
[$result, $validator] = $this->check($val);
|
||||||
|
if ($result === true) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$isTrue = false;
|
$isTrue = false;
|
||||||
if ($val instanceof BaseValidator) {
|
if ($validator instanceof BaseValidator) {
|
||||||
$this->addError($val->getError());
|
$this->addError($validator->getError());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$this->validators = null;
|
|
||||||
$this->validators = [];
|
$this->validators = [];
|
||||||
return !isset($isTrue);
|
return !isset($isTrue);
|
||||||
}
|
}
|
||||||
@@ -208,7 +207,7 @@ class Validator extends BaseValidator
|
|||||||
private function check(BaseValidator|array|Closure $val): mixed
|
private function check(BaseValidator|array|Closure $val): mixed
|
||||||
{
|
{
|
||||||
if (is_callable($val, true)) {
|
if (is_callable($val, true)) {
|
||||||
return call_user_func($val, $this);
|
return [call_user_func($val, $this), $val];
|
||||||
}
|
}
|
||||||
|
|
||||||
$class = Kiri::getDi()->get($val['class']);
|
$class = Kiri::getDi()->get($val['class']);
|
||||||
@@ -216,7 +215,7 @@ class Validator extends BaseValidator
|
|||||||
|
|
||||||
Kiri::configure($class, $val);
|
Kiri::configure($class, $val);
|
||||||
|
|
||||||
return $class->trigger();
|
return [$class->trigger(), $class];
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user