An open API service indexing awesome lists of open source software.

https://github.com/psecio/validation

A simple little validation library
https://github.com/psecio/validation

input-validation security-tools validation validation-library

Last synced: 3 months ago
JSON representation

A simple little validation library

Awesome Lists containing this project

README

        

## Psecio/Validation

This library seeks to be a simple and reusable validation library for input based on rules.

### Example

```php
'bar'
];
$rules = [
'foo' => 'required|alpha'
];

$result = $v->execute($rules, $data);
var_export($result);

?>
```

### Messages

You can also define custom messages for the failures using the third `$messages` parameter on the `execute` method. The key names on the array match to the value name + check type. For example:

```php
'bar'
];
$rules = [
'foo' => 'required|alpha'
];
$messages = [
'foo' => ['alpha' => 'This is a custom message']
];

$result = $v->execute($rules, $data, $messages);
var_export($result);
```

In the example above, we define a custom message for the `alpha` check on the `foo` value. If that check were to fail, the error message output would be the new custom message instead of the default.

### Getting Errors

There are two method available to get the errors when the result of the `execute` method is `false`:

- The `errors` method that will return a nested key/value set of failure messages (top level is the value name with each check failure message under it)
- The `errorArray` method that will return a flattended set of messages useful for output to a page without requiring too much looping

### Checks

Here is a listing of the check types that Validation supports:

#### alpha
Checks for *only* alpha characters

#### alphanum
Checks for *only* alpha-numeric characters

#### numeric
Checks to ensure the value provided is numeric (integer, float, etc)

#### integer
Checks for integer-only values. Can also include minimum and maximum values:

```php
// Minimum of 1, max of 10
$rules = ['mynumber' => 'integer[1,10]'];
```

#### boolean
Checks for boolean values (`true`, `false`, `0`, `1` and strings `'0'`, `'1'`)

#### array
Checks to ensure the value provided is an array

#### length
Checks the value to ensure the (string) length matches requirements. You must provide a minimum value, but a maximum can also be defined

```php
// Using just the minimum, checking for a length of at least 3
$rules = ['mystring' => 'length[3]']

// Using both minimum and maximum, check for a length between 3 and 10
$rules = ['mystring' => 'length[3,10]']
```

#### date
Checks to be sure the value given is a *date* (as parsed by [strtotime](http://php.net/strtotime))

#### before
Checks to see if the value (a parseable date) is before the date provided (as parsed by [strtotime](http://php.net/strtotime))

```php
// Check to see if the date provided is before yesterday
$rules = [
'myinputdate' => 'before[yesterday]'
];
```

#### after
Checks to see if the value (a parseable date) is after the date provided (as parsed by [strtotime](http://php.net/strtotime))

```php
// Check to see if the date is in the last three days
$rules = [
'myinputdate' => 'after[-3 days]'
];
```

### in
Checks to ensure the value provided is in a set of values

```php
// Check to see if the value is one of "foo", "bar" or "baz"
$rules = [
'myvalue' => 'in[foo,bar,baz]'
]
```

#### json
Checks to be sure the value is a valid JSON formatted string (using [json_decode](http://php.net/json_decode))

#### required
Checks to be sure the value exists

#### ip
Checks to ensure the value provided is a valid IPv4 or IPv6 formatted address

#### email
Check to ensure the value provided is a validly formatted email address

#### regex
Check to ensure the value matches a certain regular expression at least once

```php
$rules = [
'mystring' => 'regex[/[0-9a-z]+/]'
]
```

#### equals
This check can be used to see if the values of two fields match exactly.

```
$data = [
'foo' => 'test1',
'bar' => 'test1'
];
$rules = [
'bar' => 'equals[foo]'
];
```

#### callback

This check can be used to call custom logic via a static class method. For example, if your class is:

```php

```

Then your rule would look something like this:

```php
$rules = [
'mystring' => 'callback[Foo::check]'
];
```

And the `check` method should return a boolean result.