PHPackages                             h6play/tp5-check - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. h6play/tp5-check

ActiveLibrary

h6play/tp5-check
================

h6play/tp5-check

1.0.0(5y ago)27MITPHP

Since Jul 5Pushed 5y ago1 watchersCompare

[ Source](https://github.com/yog-union/tp5-check)[ Packagist](https://packagist.org/packages/h6play/tp5-check)[ RSS](/packages/h6play-tp5-check/feed)WikiDiscussions master Synced yesterday

READMEChangelog (1)DependenciesVersions (2)Used By (0)

TpCheck ThinkPHP 扩展验证类
======================

[](#tpcheck-thinkphp-扩展验证类)

```
为了方便写代码我们将封装统一验证类以快速开发

```

快速开始
----

[](#快速开始)

- php &gt; 7.0
- thinkphp &gt; 5.0

```
composer require h6play/tp5-check
```

过滤器类型
-----

[](#过滤器类型)

- `普通验证器` 和普通的 ThinkPHP 验证类没多大区别
- `复杂验证器` 这个是相当于验证器内嵌套验证器了，类似于 `验证多维数组` 的结构
- `过滤验证器` 和普通的 ThinkPHP 验证类没多大区别，只是有很多验证的方法

#### 普通验证器

[](#普通验证器)

```
namespace app\validate;
use app\server\Validate;
class UserValidate extends Validate
{
    protected $rule = [
        'name' =>  'min:0',
        'age'  => 'min:0',
    ];
}

// 目前增加的验证
// [] 括号括起来的表示可不传
// 所有规则都是按定义顺序执行的
// 1. validate:[scene,type],class  # 验证类验证 scene=场景, type=(map|array)数据类型, class=验证类名
// 2. empty                        # 空验证没什么用为了没有验证规则时候不报错
// 3. array:[type]                 # 验证数组类型 type=数据类型（int|float|number|bool）
// 4. isset                        # 验证参数必须存在
// 5. mobile                       # 手机号码验证具体号码段看具体实现类
```

#### 复杂验证器

[](#复杂验证器)

```
namespace app\validate;
use app\server\Validate;
class UserValidate extends Validate
{
    // validate 有三种调用方式
    // 第一种 validate:
    // 第二种 validate:,
    // 第三种 validate:,,
    protected $rule = [
        'name' =>  'min:0',
        'age'  => 'min:0',
        'book' =>  'isset|validate:logo,map,' . UserBookValidate::class,
    ];
}
```

```
namespace app\validate;
use app\server\Validate;
class UserBookValidate extends Validate
{
    protected $rule = [
        'title' => 'min:0',
        'logo' => 'min:0',
    ];
    protected $scene = [
        "logo" => ["logo"],
    ];
}
```

#### 验证器过滤

[](#验证器过滤)

```
namespace app\validate;
use app\server\Validate;
class UserBookValidate extends Validate
{
    protected $rule = [
        'title' => 'min:0|f_trim', // f_trim 实现字符串去除空格处理，更多请查看实现类
        'logo' => 'min:0',
    ];
    protected $scene = [
        "logo" => ["logo"],
    ];
}

// 目前增加的验证
// [] 括号括起来的表示可不传
// 所有规则都是按定义顺序执行的
// 1. f_trim              # 字符串去除空格
// 2. f_int               # 转换成整数
// 3. f_float             # 转换成浮点数
// 4. f_bool              # 转换成布尔值
// 5. f_array:[type]      # 转换成数组 type=类型（int|float|bool）
// 6. f_explode:char      # 字符串分割成数组 char=分割字符
// 7. f_implode           # 数组转换成字符串 char=分割字符
// 8. f_json_e            # 数组序列化
// 9. f_json_d            # 字符串序列化成数组
// 9. f_json_o            # 字符串序列化成对象
```

验证器获取参数
-------

[](#验证器获取参数)

- 如果验证失败会抛异常
- 如果不传递参数则获取 `Request::param()` 参数

```
// V() VM() VO() VMA() 方法的参数说明
// p_1 场景值（具体看教程说的场景）
// p_2 是否数组 true|false （一般来说一般会存在两种结构 array|map 也就是一个商品指向多个属性的说法）
// p_3 参数 null|array （如果不传递一般使用 Request::param() 否则 ...）
// 关于数组和非数组的说明
// Map数组
$arr = [
    "key" => "value",
  // TODO ...
];
// 多维数组
$arr = [
    "key" => [
        ["k1" => "v1", "k2" => "v2"],
    // TODO ...
  ]
];
// 模拟参数
$params = [
    "name" => "张全蛋",
    "book" => [
        "title" => "人类简史    ",
    //    "logo" => "我不想传递过去.png"
    ]
];
// 1. 验证
UserValidate::V(); // 不传递参数会自动获取 Request::param() 参数
UserValidate::V("", false, $params);
// 2. 验证并返回参数 有四种
// 2.1 返回有传递的参数
$vars = UserValidate::VO();
$vars = UserValidate::VO("", false, $params);
// 2.2 返回规则定义的所有参数（不管你有没有传递）
$vars = UserValidate::VM();
$vars = UserValidate::VM("", false, $params);
// 2.3 返回规则定义的所有参数（不管你有没有传递）（主节点以数组的方式返回）
[$name, $book] = UserValidate::VMA();
[$name, $book] = UserValidate::VMA("", false, $params);
// 2.4 返回规则定义的所有参数（不管你有没有传递）（子验证器返回有传递的参数）（主节点以数组的方式返回）
[$name, $book] = UserValidate::VMOA();
[$name, $book] = UserValidate::VMOA("", false, $params);
```

验证器模型
-----

[](#验证器模型)

- 很多时候我们为了验证某个参数，查询数据库或得到的记录等等。。。
- 但是，我们又在下面还有用到
- 但是，我们又想写成通用验证方法
- 但是，我们还想能全局访问
- 那么 。。。请打死产品经理吧！！！
- 产品祭天，法力无边！！！

```
// 设置模型变量
Validate::M("key", "value");
// 获取模型变量
$var = Validate::M("key");
```

- 下面看演示

```
class UserBookValidate extends Validate
{
    protected $rule = [
        // TODO ...
    ];
    protected $scene = [
        // TODO ...
    ];

    protected function checkBook($value, $rule, $data = [], $field = "") {
        $book = BookModel::where("id", $value)->find();
        if(!$book) {
            return "{$field}书籍并不存在"
        }
        // 设置
        Validate::M("book", $book);
        return true;
    }
}

// !!!! Main 方法 !!!

$book = Validate::M("book");
dump($book);
```

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2138d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b86f7b4bf9f46311be365033289b88fb9349e5588d44074f05cca34e69533e0e?d=identicon)[h6play](/maintainers/h6play)

---

Top Contributors

[![h6play](https://avatars.githubusercontent.com/u/61290455?v=4)](https://github.com/h6play "h6play (8 commits)")

### Embed Badge

![Health badge](/badges/h6play-tp5-check/health.svg)

```
[![Health](https://phpackages.com/badges/h6play-tp5-check/health.svg)](https://phpackages.com/packages/h6play-tp5-check)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
