PHPackages                             sunny/validation - 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. [Validation &amp; Sanitization](/categories/validation)
4. /
5. sunny/validation

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

sunny/validation
================

Illuminate Validation form valid

07PHP

Since Aug 17Pushed 8y ago1 watchersCompare

[ Source](https://github.com/caohui123/validation)[ Packagist](https://packagist.org/packages/sunny/validation)[ RSS](/packages/sunny-validation/feed)WikiDiscussions master Synced 4d ago

READMEChangelogDependenciesVersions (1)Used By (0)

validation
==========

[](#validation)

本工具简单封装了Illuminate\\Validation 使其使用起来更加方便 ，需要new一个表单 添加rules 等

composer文件代码：
-------------

[](#composer文件代码)

```
    "sunny/validation":"dev-master"
```

使用方法： 1、先构造一个需要验证的类testForm
---------------------------

[](#使用方法1先构造一个需要验证的类testform)

```
class TestForm extends Libs\Tools\Form
{
    public function __construct($data)
    {
        parent::__construct($data);
    }

    public function rules()
    {
        return [
            'title' => 'required|string|min:2|max:5',
            'status' => 'required|integer'
        ];
    }
}
```

2、调用：
-----

[](#2调用)

```
  $data = [
            'title' => '123457',
            'status' => 'werwer',
        ];

        $validator = (new TestForm($data))->make();
        if ($validator->fails()) {
            echo 'fail' . "";
            foreach ($validator->errors()->getMessages() as $key => $error) {
                echo $error[0] . "";
            }
        } else {
            echo 'ok';
        }
```

3、运行效果图
-------

[](#3运行效果图)

[![运行效果图](run.png "运行效果图")](run.png)

4、添加自定义验证
---------

[](#4添加自定义验证)

完整的form例子如下：

```
use Libs\Tools\Form;

class TestForm extends Form
{
    public function __construct($data)
    {
        parent::__construct($data);
        $this->extend();
    }

    public function rules()
    {
        return [
            'title' => 'required|string|min:2|max:5',
            'status' => 'required|integer',
            'test' => 'required|string|foo'
        ];
    }
    public function attributes()
    {
        return [
            'status'=>'状态',
            'test'=>'测试',
        ]; // TODO: Change the autogenerated stub
    }

    public function messages()
    {
        return [
            'foo' => ':attribute 不等于foo',
        ]; // TODO: Change the autogenerated stub
    }

    public function extend(){
        $this->_valid->extend('foo', function ($attribute, $value, $parameters) {
            return $value == 'foo';
        });
    }
}
```

例子二
---

[](#例子二)

```
$data = [
        'title' => '123457', 'status' => 'werwer',
        'test' => 'fooddd'
    ];

    $validator = (new TestForm($data))->make();
    if ($validator->fails()) {
        $this->assign('errors', $validator->errors());
    } else {
        echo 'ok';
    }
    $this->assign('form', $data);

    $this->display();
```

html模板如下：

```
>

    form

                Login

                            title

                                if($errors->has('title')){
                                    //echo $errors->first('title');

                                        {$errors->first('title')}

                                }

                            status

                                if($errors->has('status')){

                                        {$errors->first('status')}

                                }

                                         Remember Me

                                     Login

                                Forgot Your Password?

```

运行效果图
-----

[](#运行效果图)

[![运行效果图](over_run.png "运行效果图")](over_run.png)

更多用法请参考：
[laravel validation](https://docs.golaravel.com/docs/5.0/validation/ "laravel validation")

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

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.

### Community

Maintainers

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

### Embed Badge

![Health badge](/badges/sunny-validation/health.svg)

```
[![Health](https://phpackages.com/badges/sunny-validation/health.svg)](https://phpackages.com/packages/sunny-validation)
```

###  Alternatives

[webmozart/assert

Assertions to validate method input/output with nice error messages.

7.6k894.0M1.2k](/packages/webmozart-assert)[bensampo/laravel-enum

Simple, extensible and powerful enumeration implementation for Laravel.

2.0k15.9M104](/packages/bensampo-laravel-enum)[swaggest/json-schema

High definition PHP structures with JSON-schema based validation

48612.5M73](/packages/swaggest-json-schema)[stevebauman/purify

An HTML Purifier / Sanitizer for Laravel

5325.6M19](/packages/stevebauman-purify)[ashallendesign/laravel-config-validator

A package for validating your Laravel app's config.

217905.3k5](/packages/ashallendesign-laravel-config-validator)[crazybooot/base64-validation

Laravel validators for base64 encoded files

1341.9M8](/packages/crazybooot-base64-validation)

PHPackages © 2026

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