spiechu / php-static-validator
dev-master
2012-08-05 20:51 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2022-02-01 12:21:09 UTC
README
该类主要创建目的是为了找到 PHP 5.3.0 新增的 __callStatic
函数的一些有用用途。使用 PHP StaticValidator,您可以链式调用多个条件,并逐个检查待测试的值。
安装
由于验证器使用命名空间,因此需要使用类自动加载器,例如 SplClassLoader.php
,更多信息请参阅这里。您必须注册验证器类。
<?php require_once('SplClassLoader.php'); $classLoader = new SplClassLoader('Spiechu\StaticValidator' , 'library'); $classLoader->register();
不需要外部库。
文档
静态验证器的类旨在检查给定的变量或变量数组是否符合特定条件。
基本上,每个检查方法都以 check
字符串开头,然后您可以使用分隔符 _
并使用类型指定测试变量应满足的下一个条件。
例如,Validator::check_notNull_isInt_gt5($testedVariable);
可以翻译为 !is_null($testedVariable) && is_int($testedVariable) && ($testedVariable > 5)
。您可以看到我们获得了某些简洁性和某些灵活性(gt5
)。
PHP 静态验证器中可以区分三个主要组件
- 简单包装器(例如,isSet,notSet,isNull,notNull,isInt,notInt,isString,notString)
- 基于正则表达式(例如,onlyLetters,onlyNumbers)
- 魔术函数(例如,eq3,gt3,lt3,minLength5)
推荐构建魔术方法名的最佳方式是从最宽的测试条件到最窄的。例如,notNull
是比 isInt
更宽泛的条件,而 isInt
又比 gt5
更宽泛。
函数完整列表
- 包装器
- [is|not]Set
- [is|not]Null
- [is|not]Empty
- [is|not]Int
- [is|not]String
- 正则表达式
- onlyLetters
- onlyNumbers
- onlyAlnums
- 魔术函数
- lt# - 小于 数字
- gt# - 大于 数字
- eq# - 等于 数字
- between#and# - 匹配范围 数字
- min# - 最小字符串长度
- max# - 最大字符串长度
已知问题
当变量未设置时,避免 E_NOTICE
的唯一方法是引用传递变量以进行检查,而不是按值传递。在 __callStatic 的 $arg
表中无法执行引用传递,因此您必须抑制 E_NOTICE
警告或避免使用 isSet
或 notSet
。