chengkun
2025-09-05 4822304b63e1bd6327860af7f3db0133cecf167f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2023 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
declare (strict_types = 1);
 
//------------------------
// ThinkPHP 助手函数
//-------------------------
 
use think\Validate;
use think\validate\ValidateRuleSet;
 
if (!function_exists('validate')) {
    /**
     * 生成验证对象
     * @param string|array $validate      验证器类名或者验证规则数组
     * @param array        $message       错误提示信息
     * @param bool         $batch         是否批量验证
     * @param bool         $failException 是否抛出异常
     * @return Validate
     */
    function validate($validate = '', array $message = [], bool $batch = false, bool $failException = true): Validate
    {
        if (is_array($validate) || '' === $validate) {
            $v = new Validate();
            if (is_array($validate)) {
                $v->rule($validate);
            }
        } else {
            if (str_contains($validate, '.')) {
                // 支持场景
                [$validate, $scene] = explode('.', $validate);
            }
 
            if (class_exists($validate)) {
                $v = new $validate();
 
                if (!empty($scene)) {
                    $v->scene($scene);
                }
            } else {
                $v = new Validate();
            }
        }
        return $v->message($message)->batch($batch)->failException($failException);
    }
}
 
if (!function_exists('rules')) {
    /**
     * 定义ValidateRuleSet规则集合
     * @param array    $rules     验证因子集
     * @return ValidateRuleSet
     */
    function rules(array $rules): ValidateRuleSet
    {
        return ValidateRuleSet::rules($rules);
    }
}