PHPackages                             wiltongarcia/validation - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. wiltongarcia/validation

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

wiltongarcia/validation
=======================

Inspired 'KennedyTedesco Validation' - The power of 'Respect Validation' on Laravel.

1.0.11(10y ago)114MITPHPPHP &gt;=5.5.9

Since Aug 22Pushed 10y ago1 watchersCompare

[ Source](https://github.com/wiltongarcia/validation)[ Packagist](https://packagist.org/packages/wiltongarcia/validation)[ RSS](/packages/wiltongarcia-validation/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (5)Versions (13)Used By (0)

[Vídeo tutorial PT-BR](https://www.youtube.com/watch?v=z451-TPk79w)

Validation (Laravel Package)
============================

[](#validation-laravel-package)

### Laravel 5.0 and Laravel 5.1

[](#laravel-50-and-laravel-51)

In the **require** key of **composer.json** file add the following:

```
"resultsystems/validation": "~1.0"
```

**Important:** Do not use `dev-master`. Instead, use the tagged version, like shown before.

Run the Composer **update** comand:

```
composer update
```

In your **config/app.php** add *'ResultSystems\\Validation\\ValidationServiceProvider::class'* to the end of the **'providers'** array:

```
'providers' => array(
    ...
    ...
    ResultSystems\Validation\ValidationServiceProvider::class,
),
```

Supported rules (with examples)
-------------------------------

[](#supported-rules-with-examples)

```
// Rules
$rules = array(
    'cpf'                   => 'cpf',
    'cpf_mascara'           => 'cpf_mascara',
    'cnpj'                  => 'cnpj',
    'cnpj_mascara'          => 'cnpj_mascara',
    'cnpj_cpf'              => 'cnpj_cpf',
    'cnpj_cpf_mascara'      => 'cnpj_cpf_mascara',
    'cnpj_cpf_zero'         => 'cnpj_cpf_zero',
    'cnpj_cpf_zero_mascara' => 'cnpj_cpf_zero_mascara',
    'telefone'              => 'telefone',
    'telefone_mascara'      => 'telefone_mascara',
    'celular'               => 'celular',
    'celular_mascara'       => 'celular_mascara',
    'hora'                  => 'hora',
    'required_if_not'       => 'required_if_not',
    'cnh'                   => 'cnh', // Carteira Nacional de Habilitação
    'minimum_age'           => 'minimumAge:20',
    'callback'              => 'callback:is_int',
    'charset'               => 'charset:ASCII',
    'consonant'             => 'consonant',
    'vowel'                 => 'vowel',
    'alnum'                 => 'alnum:-',
    'digit'                 => 'digit',
    'alpha'                 => 'alpha',
    'containsArray'         => 'contains:banana',
    'contains'              => 'contains:banana',
    'countryCode'           => 'countryCode',
    'creditCard'            => 'digit|creditCard',
    'domain'                => 'domain',
    'directory'             => 'directory',
    'FileExists'            => 'FileExists',
    'isFile'                => 'file',
    'endsWith'              => 'endsWith:banana',
    'equals'                => 'equals:banana',
    'even'                  => 'even',
    'float'                 => 'float',
    'graph'                 => 'graph',
    'instance'              => 'instance:DateTime',
    'int'                   => 'int',
    'json'                  => 'json',
    'leapDate'              => 'leapDate:Y-m-d',
    'leapYear'              => 'leapYear',
    'arr'                   => 'arr',
    'lowercase'             => 'lowercase',
    'macAddress'            => 'macAddress',
    'multiple'              => 'multiple:3',
    'negative'              => 'negative',
    'noWhitespace'          => 'noWhitespace',
    'notArray'              => 'arr|not',
    'nullValue'             => 'nullValue',
    'numeric'               => 'numeric',
    'object'                => 'object',
    'odd'                   => 'odd',
    'perfectSquare'         => 'perfectSquare',
    'positive'              => 'positive',
    'primeNumber'           => 'primeNumber',
    'punct'                 => 'punct',
    'readable'              => 'readable',
    'regex'                 => 'regex:/5/',
    'roman'                 => 'roman',
    'slug'                  => 'slug',
    'space'                 => 'space:b',
    'tld'                   => 'tld', // Top Level Domain,
    //'uploaded'            => 'uploaded',
    'uppercase'             => 'uppercase',
    'version'               => 'version',
    'xdigit'                => 'xdigit', // Hexadecimal
    'writable'              => 'writable',
    'alwaysValid'           => 'alwaysValid',
    'bool'                  => 'bool'
);

// Data
$data = array(
    'cpf'                   => '22205417118',
    'cpf_mascara'           => '222.054.171-18',
    'cnpj'                  => '68518321000116',
    'cnpj_mascara'          => '68.518.321/0001-16',
    'cnpj_cpf'              => '22205417118', // ou 68518321000116
    'cnpj_cpf_zero'         => '22205417118', // ou 68518321000116 ou 00000000000 ou 00000000000000
    'cnpj_cpf_zero_mascara' => '222.054.171-18', // ou 68518321000116 ou 00000000000 ou 00000000000000
    'telefone'              => '3430353637',
    'telefone_mascara'      => '34 3035-3637',
    'celular'               => '4191234567',
    'celular_mascara'       => '41 9123-4567',
    'hora'                  => '18:40',
    'condicional'             => 'required_if_not,Tipo:5',
    'cnh'                   => '02650306461',
    'minimum_age'           => '10/10/1990',
    'callback'              => 20,
    'charset'               => 'acucar',
    'consonant'             => 'dcfg',
    'vowel'                 => 'aeiou',
    'alnum'                 => 'banana-123 ',
    'digit'                 => '120129  21212',
    'alpha'                 => 'banana',
    'containsArray'         => array('www', 'banana', 'jfk', 'http'),
    'contains'              => 'www banana jfk http',
    'countryCode'           => 'BR',
    'creditCard'            => '5555666677778884',
    'domain'                => 'google.com.br',
    'directory'             => __DIR__,
    'FileExists'            => __FILE__,
    'file'                  => __FILE__,
    'endsWith'              => 'pera banana',
    'equals'                => 'banana',
    'even'                  => 8,
    'float'                 => 9.8,
    'graph'                 => 'LKM@#$%4;',
    'instance'              => new Datetime(),
    'int'                   => 9,
    'json'                  => '{"file":"laravel.php"}',
    'leapDate'              => '1988-02-29',
    'leapYear'              => '1988',
    'arr'                   => array('Brazil'),
    'lowercase'             => 'brazil',
    'macAddress'            => '00:11:22:33:44:55',
    'multiple'              => '9',
    'negative'              => '-10',
    'noWhitespace'          => 'laravelBrazil',
    'nullValue'             => null,
    'numeric'               => '179.9',
    'object'                => new stdClass(),
    'odd'                   => 3,
    'perfectSquare'         => 25,
    'positive'              => 1,
    'primeNumber'           => 7,
    'punct'                 => '&,.;[]',
    'readable'              => __FILE__,
    'regex'                 => '5',
    'roman'                 => 'VI',
    'slug'                  => 'laravel-brazil',
    'space'                 => '              b      ',
    'tld'                   => 'com',
    //'uploaded'            => 'path to file',
    'uppercase'             => 'BRAZIL',
    'version'               => '1.0.0',
    'xdigit'                => 'abc123',
    'writable'              => __FILE__,
    'alwaysValid'           => '@#$_',
    'bool'                  => is_int(2)
);

// Make the validation
$validator = \Validator::make($data, $rules);

// Result
if( $validator->fails() )
{
    // Print errors
    $messages = $validator->messages();
    foreach ($messages->all() as $message) {
        echo ''.$message.'';
    }
}
else
{
    // Success
    echo 'True.';
}
```

Code inspired from

Respect Validation
==================

[](#respect-validation)

For more details on the rules:

Tks for Respect: **The most awesome validation engine ever created for PHP!**

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 83.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~17 days

Recently: every ~45 days

Total

12

Last Release

3727d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/150cfa2a723f45dfb224d0f27ca7ef8530edf6efd0ded98e1a9578756f941d9d?d=identicon)[wiltongarcia](/maintainers/wiltongarcia)

---

Top Contributors

[![emtudo](https://avatars.githubusercontent.com/u/191396?v=4)](https://github.com/emtudo "emtudo (15 commits)")[![wiltongarcia](https://avatars.githubusercontent.com/u/176783?v=4)](https://github.com/wiltongarcia "wiltongarcia (2 commits)")[![FelipeOAlbert](https://avatars.githubusercontent.com/u/1336435?v=4)](https://github.com/FelipeOAlbert "FelipeOAlbert (1 commits)")

---

Tags

laravelvalidationrespectrules

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/wiltongarcia-validation/health.svg)

```
[![Health](https://phpackages.com/badges/wiltongarcia-validation/health.svg)](https://phpackages.com/packages/wiltongarcia-validation)
```

###  Alternatives

[proengsoft/laravel-jsvalidation

Validate forms transparently with Javascript reusing your Laravel Validation Rules, Messages, and FormRequest

1.1k2.3M49](/packages/proengsoft-laravel-jsvalidation)[axlon/laravel-postal-code-validation

Worldwide postal code validation for Laravel and Lumen

3853.3M1](/packages/axlon-laravel-postal-code-validation)[laravel-validation-rules/credit-card

Validate credit card number, expiration date, cvc

2412.2M5](/packages/laravel-validation-rules-credit-card)[resultsystems/validation

Inspired 'KennedyTedesco Validation' - The power of 'Respect Validation' on Laravel.

2832.4k4](/packages/resultsystems-validation)[illuminatech/validation-composite

Allows uniting several validation rules into a single one for easy re-usage

184485.5k](/packages/illuminatech-validation-composite)[galahad/laravel-addressing

Laravel package providing addressing functionality

70316.6k](/packages/galahad-laravel-addressing)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
