progsmile/request-validator 问题修复 & 功能扩展

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

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

progsmile/request-validator

最新稳定版本:2.0.0

Composer 安装命令:

composer require progsmile/request-validator

包简介

Simple PHP Request Validator

README 文档

README

Make your apps validation easily (inspired by Laravel Validation)

Build Status Total Downloads License

Page Index:

Suggested Links:

Quick start 🚀

<?php

$rules = [
    # firstname and lastname must be present
    # they should be alphanumeric
    # atleast 2 characters
    'firstname, lastname' => 'required|alpha|min:2',

    # max until 18 characters only
    'lastname'            => 'max:18',

    # must be an email format
    # adding custom rule
    'email'               => ['email', MyCustomRule::class],

    # must be numeric
    'id'                  => 'numeric',
    'age'                 => ['min:16', 'numeric'],
    'info[country]'       => ['required', 'alpha'],

    # roll[0] or roll[1] values must be in the middle 1 to 100
    'roll[0], roll[1]'    => 'numeric|between:1, 100',

    # the format must be 'm-Y.d H:i'
    'date'                => 'dateFormat:(m-Y.d H:i)',

    # it must be an image format under $_FILES global variable
    'profileImg'          => 'image',

    # the provided phone number should follow the format
    # correct: +38(123)456-12-34
    # wrong: +38(123)56-123-56
    # wrong: +39(123)456-12-34
    'phoneMask'           => 'phoneMask:(+38(###)###-##-##)',
    'randNum'             => 'between:1, 10|numeric',

    # the value must be an IP Format
    'ip'                  => 'ip',
    'password'            => 'required|min:6',

    # the value from a key 'password' must be equal to 'password_repeat' value
    'password_repeat'     => 'same:password',

    # it must be a json format
    'json'                => 'json',
    'site'                => 'url',

    # cash10 or cash25 must only have these
    # 1 or 2 or 5 or 10 or 20 or 50
    'cash10, cash25'      => 'in:1, 2, 5, 10, 20, 50',

    # the value must not have 13 or 18 or 3 or 4
    'elevatorFloor'       => 'notIn:13, 18, 3, 4',
];

$customMessage = [
   'info[country].alpha' => 'Only letters please',
   'email.required'      => 'Field :field: is required',
   'email.email'         => 'Email has bad format',
   'email.unique'        => 'This email :value: is not unique',
   'elevatorFloor.notIn' => 'Oops',
];

$validation = \Progsmile\Validator\Validator::make($_POST, $rules, $customMessage);

# for specific field
# you can use below code.
$validation->lastname->passes();
$validation->lastname->fails();

# if you're required to check everything
# and there must no failing validation
$validation->passes();
$validation->fails();

# get first error message
$validation->first();

# get first error for `firstname`
$validation->first('lastname');
$validation->firstname->first();

# return first error message from each field
$validation->firsts();

# get all messages (with param for concrete field)
$validation->messages();
$validation->messages('password');

# get all `password` messages
$validation->password->messages();

# get 2d array with fields and messages
$validation->raw();

# to append a message
$validation->add('someField', 'Something is wrong with this');

Contributing :octocat:

Dear contributors , the project is just started and it is not stable yet, we love to have your fork requests.

Testing

This testing suite uses Travis CI for each run. Every commit pushed to this repository will queue a build into the continuous integration service and will run all tests to ensure that everything is going well and the project is stable.

The testing suite can be run on your own machine. The main dependency is PHPUnit which can be installed using Composer:

# run this command from project root
$ composer install --dev --prefer-source
$ vendor/bin/phpunit --configuration phpunit.xml --coverage-text

For additional information see PHPUnit The Command-Line Test Runner.

License

PHP Request Validator is open-sourced software licensed under the GNU GPL. © 2020 Denys Klymenko and all the contributors.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: GPL-2.0
  • 更新时间: 2016-01-25