randomphp / validation
A standalone validation class
Requires
- php: >=5.4
Suggests
- ext-mbstring: It can support the multiple bytes string length.
This package is auto-updated.
Last update: 2022-10-15 16:53:54 UTC
README
Installation
composer require randomphp/validation
How to
Validate a $_POST|$array
array:
Keys without any requirements return true.
Using $password
gets the value of another key
The validation wil normally run of the requirements on each input before returning true or error messages.
However, if you call the bail()
before you validate, it will stop after the first error
// Without bail() active
$validation = new Validation($_POST|$array);
$validation->requirements([
'username' => 'required',
'password' => ['required', 'min:8'],
'confirmPassword => 'equals:$password',
'name' => ['optional', 'min:3']
]);
$passed = $validation->validate();
// With bail() active
$validation = new Validation($_POST|$array);
$validation->requirements([
'username' => 'required',
'password' => ['required', 'min:8'],
'confirmPassword => 'equals:$password',
'name' => ['optional', 'min:3']
]);
$validation->bail();
$passed = $validation->validate();
You can use the __construct()
to do some things or everything.
Default: __construct($inputs = null, $requirements = null, $validate = false, $bail = false)
$validation = new Validation($_POST|$array, $rules|[
'username' => 'required',
'password' => ['required', 'min:8'],
'confirmPassword => 'equals:$password',
'name' => ['optional', 'min:3']
]);
$passed = $validation->validate();
// Here we are telling the __construct() to validate the input by adding the true after $rules
$passed = new Validation($_POST|$array, $rules|[
'username' => 'required',
'password' => ['required', 'min:8'],
'confirmPassword => 'equals:$password',
'name' => ['optional', 'min:3']
], $validate = true);
// You can also set the __construct() to bail after first error
$passed = new Validation($_POST|$array, $rules|[
'username' => 'required',
'password' => ['required', 'min:8'],
'confirmPassword => 'equals:$password',
'name' => ['optional', 'min:3']
], $validate = true, $bail = true);
If the optional
requirement is on an input it will return true if empty, when if there is more requirements attached the that input. However, if there is anything in the input, the other requirements will validate the value.
You can call them individually as well:
$validation = new Validation();
$validation->isArray($array);
$validation->min($string, 12);
Errors
- To change the
error mode
usesetErrormode($boolean)
. (Default:TRUE
). - Error messages only shows if you want to validate an array and not using the validation functions separately.
Error messages
To customize your messages, you can call either of these functions:
setMessage($rule, $message)
- This will only change one message.setMessages($array)
- This will change multiple messages.
There is some placeholders that can be used when customizing messages:
:input
- will show the name-attribute of the input:value
- will show the value of the input:param1
- will show the first parameter of the rule eg.between:8|10
will show 8:param2
- will show the second parameter of the rule eg.between:8|10
will show 10:prefixes
- will show'http://', 'http://', 'ftp://'
Examples on changing messages
$validation = new Validation($_POST);
// Change the error message for the rule 'isString'
$validation->setMessage('isString', "':input' must be a string."); // will show "'name' must be a string"
// Change the error message on between, alpha and date
$validation->setMessages([
'between' => "':input' must be between :param1 and :param2", // will show "'age' must be between 13 and 25"
'alpha' => "':value' must only alphabetic characters", // will show "'hello123' must only show alphabetic characters"
'date' => "':value' is not a date" // will show "'hello123' is not a date"
]);
Built-in requirements/rules
optional
isArray
isInteger
isNumeric
required
equals
different
isString
length
min
max
between
in
ip
ipv4
ipv6
email
emailDNS
url
urlActive
regex
date
dateFormat
dateBefore
dateAfter
isBoolean
contains
accepted
slug
alpha
alphaNum