2017 © Pedro Peláez
 

library validation

image

igniphp/validation

  • Tuesday, April 24, 2018
  • by dkraczkowski
  • Repository
  • 1 Watchers
  • 3 Stars
  • 31 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

Igni logoBuild Status

Igni Validation

Licensed under MIT License., (*1)

Igni validation is simple, lightweight and extensible validation library., (*2)

Installation

composer install igniphp/validation

Introduction

Basic example

<?php

use Igni\Validation\Assertion;

$numberValidator = Assertion::number($min = 0);

$numberValidator->validate(1);// true
$numberValidator->validate(-1);// false
$numberValidator->validate(1.0);// true
$numberValidator->validate('a'); // false

Getting error information

Allows to validate complex arrays, (*3)

<?php

use Igni\Validation\Assertion;
use Igni\Validation\Error;

$userValidator = Assertion::group([
    'name' => Assertion::alnum(),
    'age' => Assertion::number(1, 200),
    'email' => Assertion::email(),
    'address' => Assertion::text(),
]);

$userValidator->validate([
    'name' => 'John',
    'age' => 233,
    'email' => 'johnmail',
]);// false


$errors = $userValidator->getErrors();

$errors[0] instanceof Error\OutOfRangeError;// true
$errors[0]->getContext()->getName();//age

$errors[1] instanceof Error\EmptyValueError;// true
$errors[1]->getContext()->getName();//address

// Exception can also be factored out of failure instance
throw $errors[0]->toException();

API

Validation list

Assertion::alnum(int $min = null, int $max = null)

Creates validator that checks if passed value contains only digits and letters., (*4)

Parameters

  • $min defines minimum length
  • $max defines maximum length

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::alnum($minLength = 2);
var_dump($validator->validate('a1')); // true

Assertion::alpha(int $min = null, int $max = null)

Creates validator that checks if passed value contains only letters., (*5)

Parameters

  • $min defines minimum length
  • $max defines maximum length

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::alpha($minLength = 2);
var_dump($validator->validate('aaa')); // true

Assertion::boolean()

Creates validator that checks if passed value is valid boolean expression., (*6)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::boolean();
var_dump($validator->validate(false)); // true

Assertion::chain(Rule ...$rules)

Creates validator that uses other validators to perform multiple validations on passed value., (*7)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::chain(Assertion::text(), Assertion::date());
var_dump($validator->validate('2018-09-10')); // true

Assertion::contains(string $value)

Creates validator that checks if passed string is contained in the validated string., (*8)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::contains('example');
var_dump($validator->validate('Test example')); // true

Assertion::date(string $format = null, $min = null, $max = null)

Creates validator that checks if passed value is valid date., (*9)

Parameters

  • $format restricts format of passed value
  • $min defines minimum date range
  • $max defines maximum date range

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::date('Y-m-d');
var_dump($validator->validate('2018-09-10')); // true

Assertion::email()

Creates validator that checks if passed value is valid email address., (*10)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::email();
var_dump($validator->validate('test@test.com')); // true

Assertion::each(Validator $validator)

Creates validator that checks if each item in passed set can be successfully validated against $validator., (*11)

Parameters

  • $validator validator used for each item of the passed set.

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::each(Assertion::date('Y-m-d'));
var_dump($validator->validate(['2019-01-01', '2018-10-11'])); // true

Assertion::falsy()

Creates validator that checks if passed value is valid falsy expression; - off - no - false - 0, (*12)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::falsy();
var_dump($validator->validate('no')); // true

Assertion::group(array $validatorsHash)

Creates validator with key/value hash that validates other hashes., (*13)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::group([
    'email' => Assertion::email(),
    'password' => Assertion::text(),
    'date_of_birth' => Assertion::date('Y-m-d'),
]);
var_dump($validator->validate([
    'email' => 'test@domain.com',
    'password' => 'secret',
    'date_of_birth' => '2019-01-01',
])); // true

Assertion::regex(string $pattern)

Creates validator that checks if passed string matches the pattern., (*14)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::regex('^-[a-z]+$');
var_dump($validator->validate('-aa')); // true

Assertion::truthy()

Creates validator that checks if passed value is valid truthy expression; - on - true - 1 - yes, (*15)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::truthy();
var_dump($validator->validate('yes')); // true

Assertion::text(int $minLength = null, int $maxLength = null)

Creates validator that checks if passed value is string., (*16)

Parameters

  • $minLength defines minimum length
  • $maxLength defines maximum length

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::text($minLength = 2);
var_dump($validator->validate('aaa')); // true

Assertion::in(...$values)

Creates validator that checks if passed value exists in defined list of values., (*17)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::in('no', 'yes', 'test');
var_dump($validator->validate('no')); // true

Assertion::integer(int $min = null, int $max = null)

Creates validator that checks if passed value is valid integer expression., (*18)

Parameters

  • $min defines minimum value
  • $max defines maximum value

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::integer(10, 100);
var_dump($validator->validate(11)); // true
 ```

### `Assertion::ip()`

Creates validator that checks if passed value is valid ip address.

#### Example
```php
<?php
use Igni\Validation\Assertion;

$validator = Assertion::ip();
var_dump($validator->validate('123.123.123.123')); // true

Assertion::ipv4()

Creates validator that checks if passed value is valid ip v4 address., (*19)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::ipv4();
var_dump($validator->validate('123.123.123.123')); // true

Assertion::ipv6()

Creates validator that checks if passed value is valid ip v6 address., (*20)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::ipv6();
var_dump($validator->validate('2001:0db8:85a3:0000:0000:8a2e:0370:7334')); // true

Assertion::number(int $min = null, int $max = null)

Creates validator that checks if passed value is valid number expression., (*21)

Parameters

  • $min defines minimum value
  • $max defines maximum value

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::number(10, 100);
var_dump($validator->validate('11.2')); // true

Assertion::uuid()

Creates validator that checks if passed value is valid uuid., (*22)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::uuid();
var_dump($validator->validate('1ff60619-81cc-4d8e-88ac-a3ae36a97dce')); // true

Assertion::uri()

Creates validator that checks if passed value is valid uri string., (*23)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::uri();
var_dump($validator->validate('/some/uri')); // true

Assertion::url()

Creates validator that checks if passed value is valid url string., (*24)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::uri();
var_dump($validator->validate('http://domain.com/some/uri')); // true

Assertion::text()

Creates validator that accepts every non empty string., (*25)

Assertion::group(array $validators)

Creates validator that validates passed value by group of defined validators., (*26)

Example

<?php
use Igni\Validation\Assertion;

$validator = Assertion::group([
    'name' => Assertion::text(),
    'age' => Assertion::integer(1, 200),
    'email' => Assertion::email(),
]);
var_dump($validator->validate(['name' => 'John Doe', 'age' => 29, 'email' => 'john@gmail.com'])); // true

Creating custom validator

To create custom validator we have to simply extend \Igni\Validation\Assertion class, please consider following example:, (*27)

<?php declare(strict_types=1);

use Igni\Validation\Assertion;

class ValidateIn extends Assertion
{
    public function __construct(...$values)
    {
        $this->attributes['valid_values'] = $values;
    }

    protected function assert($input): bool
    {
        return in_array($input, $this->attributes['valid_values'], $strict = true);
    }
}

That's all folks!, (*28)

The Versions

24/04 2018

dev-master

9999999-dev

  Sources   Download

MIT

The Requires

  • php ^7.1.0

 

The Development Requires

by Dawid Kraczkowski

php validation

20/03 2018

1.1.0

1.1.0.0

  Sources   Download

MIT

The Requires

  • php ^7.1.0

 

The Development Requires

by Dawid Kraczkowski

php validation

03/03 2018

1.0.0

1.0.0.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Dawid Kraczkowski