team-moment/validator 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

team-moment/validator

Composer 安装命令:

composer require team-moment/validator

包简介

README 文档

README

参考了 Laravel 的验证规则语法, 同时又复制粘贴了 vlucas/valitron 的消息模板.

使用

<?php
use Moment\Validator\Validator;

// 增加规则扩展
Validator::addExtension(
    'channel',
    function ($field, $value, array $parameters = []) {
        return false !== array_search($value, ['google', 'bing']);
    },
    false
);

$data = [
    'blog' => 'https://github.com/RunnerLee',
];
$rule = [
    'blog' => 'required|url',
];
$validator = new Validator($data, $rule);

var_dump($validator->validate()); // output: true

// 获取错误消息
$validator->messages();

内置验证规则

  • accept:字段的取值范围必须是:yes、on、'1'、1、true 中的一个
  • numeric:字段的值必须是数字(包括整形和浮点数)
  • integer:字段的值必须是整形
  • float:字段的值必须是浮点型
  • size:字段的值必须为指定长度
  • url:字段的值必须是合法的 url 类型
  • boolean:字段的值必须是布尔类型
  • confirm:字段的值必须与指定值相等
  • date:字段的值必须是一个合法的日期
  • email:字段的值必须是一个合法的 email
  • required:必须包含该字段
  • requiredWith:如果指定的字段中的任意一个有值且不为空,则此字段为必填
  • requiredWithout:如果缺少任意一个指定的字段,则此字段为必填
  • requiredIf:如果指定的其它字段(anotherfield)等于任何一个 value 时,此字段为必填
  • array:字段的值必须是数组类型
  • string:字段的值必须是字符串类型
  • min:字段的值必须大于等于指定值
  • max:字段的值必须小于等于指定值
  • range:字段的值长度必须指定范围内,包含 min 和 max。
  • regex:字段的值必须匹配指定的正则表达式
  • in:字段的值必须在指定的数组内
  • ip:字段的值必须是一个合法的 ip
  • dateFormat:字段的值必须是一个合法的 date format 格式。参考:http://php.net/manual/en/datetime.createfromformat.php
  • dateBefore:字段的值必须小于给定时间。给定时间值非时间戳格式,而是 date/time 字符串,如:10 September 2000
  • dateAfter:字段的值必须大于给定时间。时间值格式同上。
  • json:字段的值必须是一个合法的 JSON 格式

Note

关于空字符串

如果传入一个数组:

$data = [
    'foo' => '',
];

同时规则设置为:

$rules= [
    'foo' => 'string',
];

此时校验结果会是通过的. 也就是说 validator 不会把 '' 当作 null 处理.

参考

https://github.com/vlucas/valitron https://github.com/illuminate/validation https://github.com/RunnerLee/validator

team-moment/validator 适用场景与选型建议

team-moment/validator 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5.2k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 06 月 11 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 team-moment/validator 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 team-moment/validator 我们能提供哪些服务?
定制开发 / 二次开发

基于 team-moment/validator 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 5.2k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 12
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 5
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-06-11