fangstar/php-validator

PHP参数校验组件

v1.0.1 2016-11-23 01:16 UTC

This package is not auto-updated.

Last update: 2024-09-23 15:05:12 UTC


README

Latest Version on Packagist Software License Total Downloads

注意: PHP 参数校验 文件校验 验证

摘要

  这是一个基于PHP5.6以上版本的PHP参数校验组件,其v1.0.0版本的作者Qvil_Young,使用过Laravel5.2的Validation组件后,发现其存在校验BUG、用法歧义之处,并且文档不正确等带来诸多问题... 因此才决定自己开发一个好用的组件,独立于任何框架,和Laravel分离开来,功能简单强大!

  该组件不依赖任何其他组件,以及PHP特殊少见的扩展。

  该组件针对HTTP(S)协议下Web请求和响应的场景,提供了N多种对变量类型和常见字符串类型进行严格校验的规则,同时提供了变量类型的转换和别名命名!

  该组件暂不打算耦合ORM去校验字段的唯一性,作者觉得那样做是多余的!

以下是php-validator组件的特性:
  • 支持对上传的文件进行校验(比如文件类型,文件大小区间)
  • 准确校验PHP的各种数据类型、以及常见字符串的数据类型(比如字母、数字、邮箱、中国地区的手机号、IP地址和URL等)
  • 支持多个参数之间的关联性校验(比如当参数a传入时,参数b也必须传入)
  • 准确判断数值的大小和长度,以及它们的区间(比如,校验年龄在18岁到59岁之间,字符串长度在12到20个之间)
  • 支持浮点类型的准确校验,并且支持精度转换(比如将money字段转成2为小数,同时会校验原参数是否是浮点数)
  • 高级用法:支持字符串形式的一维数组校验,比如字符串"[1,2,3,4]"的校验,同时支持将其转成PHP数组,数组中的元素也可以指定数据类型
  • 支持自定义提示文案,语言文件默认路径使用Laravel5.2的项目结构,放于 resources/lang/下。如有特殊需求也可以配置
以下是QP v1.0.0 版本功能可能的不足之处:
  • 组件对外提供的方法和校验规则已经稳定,不会改变。如果你发现BUG,请发邮件给作者!Qvil Young

安装

使用Composer工具安装项目(使用方法,自行学习)

Via Composer

$ composer require fangstar/php-validator

将lang文件夹下面的语言包文件,拷贝到和verdor目录同级下的 resources/lang/ 文件夹下。

或者根据自身需求,修改config.php文件的lang配置项

基本用法

<?php
use FangStarNet\PHPValidator\Validator;

$data = $_GET;
Validator::make($data, [
    "id" => "present|alpha_num|length:32", // 校验id字段必传,且由数字字母组成,长度为32
]);
if (Validator::has_fails()) {
    echo Validator::error_msg(); // 校验不通过,打印提示信息(默认使用语言包中的文案)
    exit;
} else {
    echo "参数校验已经通过";
}

文档

组件详细使用文档,传送门在此!

变更日志

请查看 CHANGELOG 获取更多信息关于最近的变化。

贡献

请查看 CONTRIBUTING 获取详细信息。

安全

如果你发现任何安全问题,请通过邮箱 yangqingwu@fangstar.net 而不是使用问题跟踪器来报告。

鸣谢

许可证

MIT许可证(MIT)。请参阅 许可证文件 获取更多信息。