14 Commits

Author SHA1 Message Date
as2252258 485b39390e Revert "改名"
This reverts commit fdf58326
2022-01-12 14:10:32 +08:00
as2252258 9fa7d2828c e 2022-01-09 14:01:11 +08:00
as2252258 2288ea4778 1 2022-01-09 02:44:06 +08:00
as2252258 84c345375b Revert "改名"
This reverts commit fdf58326
2022-01-08 18:49:06 +08:00
as2252258 00a53ba0f3 Revert "改名"
This reverts commit fdf58326
2022-01-04 16:53:31 +08:00
as2252258 011e0cd9b8 1 2021-12-12 06:06:15 +08:00
as2252258 a7531432d4 改名 2021-12-07 16:43:19 +08:00
as2252258 76bd050ada 改名 2021-12-02 16:34:14 +08:00
as2252258 0e6a1b5ba2 改名 2021-12-02 16:33:46 +08:00
as2252258 10aa70eb03 改名 2021-12-02 16:31:41 +08:00
as2252258 b80833691e 改名 2021-12-02 16:29:54 +08:00
as2252258 4ac84b3edf 改名 2021-12-02 16:28:14 +08:00
as2252258 8e8bd0bd43 改名 2021-11-10 11:27:38 +08:00
as2252258 a1c7907146 改名 2021-11-10 11:25:18 +08:00
16 changed files with 1101 additions and 1148 deletions
@@ -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;
+7 -4
View File
@@ -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;
}
} }
/** /**
+32
View File
@@ -0,0 +1,32 @@
<?php
/**
* Created by PhpStorm.
* User: whwyy
* Date: 2018/4/20 0020
* Time: 17:32
*/
declare(strict_types=1);
namespace validator;
class EmailValidator extends BaseValidator
{
/**
* @return bool
* 检查是否存在
*/
public function trigger(): bool
{
if (empty($this->params) || !isset($this->params[$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;
} 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
View File
@@ -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;
+8 -9
View File
@@ -7,7 +7,7 @@ namespace validator;
use Closure; use Closure;
use Exception; use Exception;
use Kiri\Kiri; use Kiri;
/** /**
* Class Validator * Class Validator
@@ -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];
} }
} }
+1 -1
View File
@@ -15,7 +15,7 @@
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"validator\\": "src/" "validator\\": "./"
} }
}, },
"require-dev": { "require-dev": {
-35
View File
@@ -1,35 +0,0 @@
<?php
/**
* Created by PhpStorm.
* User: whwyy
* Date: 2018/4/20 0020
* Time: 17:32
*/
declare(strict_types=1);
namespace validator;
class EmailValidator extends BaseValidator
{
/**
* @return bool
* 检查是否存在
*/
public function trigger(): bool
{
$param = $this->getParams();
if (empty($param) || !isset($param[$this->field])) {
return true;
} else {
$value = $param[$this->field];
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');
}
}
}
}