valid8r/valid8r_php

此包已被弃用且不再维护。未建议替换包。

支持多种编程语言的验证库

v0.1.0 2013-12-28 22:01 UTC

This package is not auto-updated.

Last update: 2024-04-09 00:21:23 UTC


README

这个包相当旧了,没有人应该在使用它。

Valid8r - Validation for multiple programming languages.

Valid8r for PHP

Valid8r 是一个使用公共 JSON 配置文件的多种编程语言验证库。更多关于 Valid8r 和配置文件的信息,请参阅

https://github.com/thomporter/valid8r

安装

Valid8r for PHP 实际上只有一个文件是你需要的。如果你不关心测试、示例等,你可以简单地从 lib/Valid8r 文件夹中获取 Valid8r.php 文件

https://raw.github.com/thomporter/valid8r_php/master/lib/Valid8r/Valid8r.php

或者,你也可以克隆这个仓库以获取示例和测试。

你也可以通过 Composer 安装

{
  "require": {
    "valid8r/valid8r_php": ">=v0.0.3"
  }
}

示例

在支持 PHP 的 Web 服务器上运行 Examples 文件夹,你可以查看 Kitchen Sink 示例。

以下是它在 PHP 中工作的一个快速示例

<?php
$validator = new Valid8r(Array(
	'rules_file' => '/path/to/your/rules.json',
	'data' => $_POST // assumed to be slash-free
));
$errors = $validator->validateAll();
// errors is now an associative array, where the keys are fields with 
// errors, and values are the errors themselves.  
// Fields with no errors are not in the array.

if (!empty($errors)) {
	// there was at least one error in the form...
}

if (@$errors['field_name']) {
	// field_name has an error, the error string is in $errors['field_name']
}

自定义验证器

有关自定义验证器的通用信息,请参阅Valid8r 主文档

Valid8r for PHP 支持以下方式的自定义验证器

  • 标准函数
  • 类的静态方法
  • 类的实例方法

无论你使用哪种方式,你的函数必须接受两个参数($field & $value),并且必须返回一个字符串作为错误,或者一个空字符串如果没有错误。

使用标准函数的自定义验证器

只需使用函数名作为自定义规则中 func 属性的值,Valid8r 将直接访问它。

使用静态方法的自定义验证器

你可以在自定义规则中添加 php_static_class,Valid8r 将将其与 func 属性组合来构建调用

$php_static_class::$func($field, $value)

你还可以添加一个 php_namespace,这将导致 Valid8r 按如下方式调用

$php_namespace\$php_static_class::$func($field, $value)

使用实例方法的自定义验证器

如果你需要 Valid8r 初始化一个类,然后调用它的方法,这就是你的选择。添加一个 php_class 属性,Valid8r 将按如下方式调用

$validator = new $php_class
$validator->$func($field, $value)

测试

如果你克隆/下载了仓库,则可用 PHPUnit 测试。安装 PHPUnit 后,你可以通过以下方式运行测试

`run-tests`