From aa05c0dc388acfdecf172c6150105cd894336a8a Mon Sep 17 00:00:00 2001 From: inhere Date: Fri, 1 Dec 2017 17:16:31 +0800 Subject: [PATCH] update readme. modify: Validators in the class must have a suffix 'Validator' --- README.md | 9 +++++++-- src/Utils/UserAndContextValidatorsTrait.php | 16 ++++++++-------- src/ValidationTrait.php | 4 ++-- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 5220f18..4c50500 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ git clone https://gitee.com/inhere/php-validate.git // git@osc ## 使用 - + ### 方式 1: 创建一个新的class,并继承Validation 创建一个新的class,并继承 `Inhere\Validate\Validation`。用于一个(或一系列相关)请求的验证, 相当于 laravel 的 表单请求验证 @@ -145,6 +145,7 @@ $safeData = $v->getSafeData(); // 验证通过的安全数据 $db->save($safeData); ``` + ### 方式 2: 直接使用类 Validation 需要快速简便的使用验证时,可直接使用 `Inhere\Validate\Validation` @@ -175,6 +176,7 @@ class SomeController } ``` + ### 方式 3: 创建一个新的class,使用 ValidationTrait 创建一个新的class,并使用 Trait `Inhere\Validate\ValidationTrait`。 此方式是高级自定义的使用方式, 可以方便的嵌入到其他类中 @@ -252,7 +254,10 @@ class UserController ## 添加自定义验证器 -- 在继承了 `Inhere\Validate\Validation` 的子类添加验证方法. 请看上面的 **使用方式1** +- 在继承了 `Inhere\Validate\Validation` 的子类添加验证方法. 请看上面的 [使用方式1](#how-to-use1) + +> 注意: 写在当前类里的过滤器方法必须带有后缀 `Validator`, 以防止对内部的其他的方法造成干扰 + - 通过 `Validation::addValidator()` 添加自定义验证器. e.g: ```php diff --git a/src/Utils/UserAndContextValidatorsTrait.php b/src/Utils/UserAndContextValidatorsTrait.php index d628e62..5101ad5 100644 --- a/src/Utils/UserAndContextValidatorsTrait.php +++ b/src/Utils/UserAndContextValidatorsTrait.php @@ -276,7 +276,7 @@ public function requiredWithoutAll($field, $fields) * @param string|array $suffixes e.g ['jpg', 'jpeg', 'png', 'gif', 'bmp'] * @return bool */ - public function file($field, $suffixes = null) + public function fileValidator($field, $suffixes = null) { if (!$file = $this->uploadedFiles[$field] ?? null) { return false; @@ -308,7 +308,7 @@ public function file($field, $suffixes = null) * @param string|array $suffixes e.g ['jpg', 'jpeg', 'png', 'gif', 'bmp'] * @return bool */ - public function image($field, $suffixes = null) + public function imageValidator($field, $suffixes = null) { if (!$file = $this->uploadedFiles[$field] ?? null) { return false; @@ -355,7 +355,7 @@ public function image($field, $suffixes = null) * @param string|array $types * @return bool */ - public function mimeTypes($field, $types) + public function mimeTypesValidator($field, $types) { if (!$file = $this->uploadedFiles[$field] ?? null) { return false; @@ -382,7 +382,7 @@ public function mimeTypes($field, $types) * @param string|array $types * return bool */ - public function mimes($field, $types = null) + public function mimesValidator($field, $types = null) { } @@ -396,17 +396,17 @@ public function mimes($field, $types = null) * @param string $compareField * @return bool */ - public function compare($val, $compareField) + public function compareValidator($val, $compareField) { return $compareField && ($val === $this->get($compareField)); } - public function same($val, $compareField) + public function sameValidator($val, $compareField) { return $this->compare($val, $compareField); } - public function equal($val, $compareField) + public function equalValidator($val, $compareField) { return $this->compare($val, $compareField); } @@ -417,7 +417,7 @@ public function equal($val, $compareField) * @param string $compareField * @return bool */ - public function notEqual($val, $compareField) + public function notEqualValidator($val, $compareField) { return $compareField && ($val !== $this->get($compareField)); } diff --git a/src/ValidationTrait.php b/src/ValidationTrait.php index 3ae6736..741e328 100644 --- a/src/ValidationTrait.php +++ b/src/ValidationTrait.php @@ -323,8 +323,8 @@ protected function valueValidate($data, $field, $value, $validator, $args) $passed = $callback($value, ...$args); // if $validator is a custom method of the subclass. - } elseif (method_exists($this, $validator)) { - $passed = $this->$validator($value, ...$args); + } elseif (method_exists($this, $method = $validator . 'Validator')) { + $passed = $this->$method($value, ...$args); // $validator is a method of the class 'ValidatorList' } elseif (method_exists(ValidatorList::class, $validator)) {