Respect Validation 库

这个库在github上已经有了4k+个star,算是非常好的一个验证库了。

我用得比较多的是在验证$_POST参数的时候。

举下面这个例子,验证$_POST里面应该包含参数idname,其中id是一个int值,name是一个字符串且长度不能超过30。

		use Respect\Validation\Validator as V;
		use Respect\Validation\Exceptions\NestedValidationException;

        // 验证参数
        try {
            V::keySet(
                V::key('name', V::notEmpty()->stringType()->length(1, 30)),
                V::key('id', V::intVal())
            )->assert($_POST);
        } catch (NestedValidationException $e) {
            ……
        }

Respect Validation这个库还有其他很多验证,比如说:

        try {
            V::keySet(
                // 数组且非空
                V::key('list', V::arrayType()->notEmpty()),
                // 正数
                V::key('id', V::intVal()->positive()),
                // 非负数
                V::key('num', V::intVal()->not(V::positive())),
                // 在某个取值区间内
                V::key('method', V::in(['GET', 'POST',])),
                // ip地址或者domain
                V::key('host', V::oneOf(
                          	 V::ip(),
                            V::domain()
                        ))
            )->assert($_POST);
        } catch (NestedValidationException $e) {
            ……
        }

还有很多验证,具体可以参考官方文档