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
- Host: GitHub
- URL: https://github.com/psecio/validation
- Owner: psecio
- License: mit
- Created: 2016-10-21T20:41:41.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-09-28T02:39:08.000Z (over 6 years ago)
- Last Synced: 2025-03-25T12:40:51.035Z (3 months ago)
- Topics: input-validation, security-tools, validation, validation-library
- Language: PHP
- Size: 47.9 KB
- Stars: 7
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
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
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.