spiechu / php-static-validator

该软件包已被放弃且不再维护。作者建议使用 respect/validation 软件包。

用于检查给定变量或变量数组是否符合特定条件的类

dev-master 2012-08-05 20:51 UTC

This package is auto-updated.

Last update: 2022-02-01 12:21:09 UTC


README

该类主要创建目的是为了找到 PHP 5.3.0 新增的 __callStatic 函数的一些有用用途。使用 PHP StaticValidator,您可以链式调用多个条件,并逐个检查待测试的值。

Travis 构建状态:构建状态

安装

由于验证器使用命名空间,因此需要使用类自动加载器,例如 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 静态验证器中可以区分三个主要组件

  1. 简单包装器(例如,isSet,notSet,isNull,notNull,isInt,notInt,isString,notString)
  2. 基于正则表达式(例如,onlyLetters,onlyNumbers)
  3. 魔术函数(例如,eq3,gt3,lt3,minLength5)

推荐构建魔术方法名的最佳方式是从最宽的测试条件到最窄的。例如,notNull 是比 isInt 更宽泛的条件,而 isInt 又比 gt5 更宽泛。

函数完整列表

  1. 包装器
    • [is|not]Set
    • [is|not]Null
    • [is|not]Empty
    • [is|not]Int
    • [is|not]String
  2. 正则表达式
    • onlyLetters
    • onlyNumbers
    • onlyAlnums
  3. 魔术函数
    • lt# - 小于 数字
    • gt# - 大于 数字
    • eq# - 等于 数字
    • between#and# - 匹配范围 数字
    • min# - 最小字符串长度
    • max# - 最大字符串长度

已知问题

当变量未设置时,避免 E_NOTICE 的唯一方法是引用传递变量以进行检查,而不是按值传递。在 __callStatic 的 $arg 表中无法执行引用传递,因此您必须抑制 E_NOTICE 警告或避免使用 isSetnotSet