A simple and easy input and data validation library
I dislike the way of using Wordpress Plugins or heavy PHP packages for form development when it comes to Wordpress forms. I hate when third party code adds markup to your page or narrows my possibilites because of some restrictions coming with the external code. Thats why I started looking for easy to use validation frameworks but didn't find anything that perfectly fits my needs. This is why I started development on Vivalidator.
Run composer require bdbch/vivalidator
in your project folder to install Vivalidator via Composer. It will be automatically placed into your autoload.
Make sure to have all necessary files copied manually into your project. Require the desired library from the src
folder in your code to get access to a Vivalidator Class.
Using the Validator is simple. Check out this example code to get an idea on how to use this feature.
<?php
// Make sure to use the feature in your component
use Vivalidator\Validator;
// Data to validate. I left the job empty on purpose to demonstrate non-valid data
$data = [
'name' => 'Peter',
'age' => '23',
'job' => ''
];
// Validator Options / Rules
// Each field can have multiple rules with their own error messages
$options = [
'name' => [
[
'rule' => 'required',
'error' => 'Please enter your name'
],
[
'rule' => 'minlength',
'value' => 3,
'error' => 'Your name needs to be longer than 3 characters.'
]
],
'age' => [
[
'rule' => 'required',
'error' => 'Please enter your age'
],
[
'rule' => 'min',
'value' => 1,
'error' => 'You need to be older than 1'
],
[
'rule' => 'max',
'value' => 150,
'error' => 'I would love to believe you, but I will not'
]
],
'job' => [
[
'rule' => 'required',
'error' => 'Please specify your job'
]
]
];
// Create a new validator instance and pass data and options in
$validator = new Validator($data, $options);
// Errors will be collected in an array.
// If there are no errors, it will be an empty string
if (count($validator->errors)) {
echo 'You have ' . count($validator->errors) . ' errors in your submission.';
foreach ($validator->errors as $error) {
echo 'Error: ' . $error;
}
} else {
echo 'All set, lets submit!';
}
// Thats it
// You can now do what ever you want with the submitted data
// Make sure to escape the data. The validator doesn't do this right now
// TODO: This will be a feature so fields can be escaped if needed
Vivalidator now has ReCaptcha Support! Just specify your Secret Key and the Error String as extra data to configure it right away! Make sure to have the ReCaptcha library installed manually or via composer require google/recaptcha
.
// Check this URL if you need a Key
// https://www.google.com/recaptcha/admin
// Make sure you have a working ReCaptcha library installed,
// otherwise this will do nothing
$validator = new Validator($data, $options, [
'recaptcha' => [
'secret' => 'YOUR_SECRET_KEY_HERE',
'error' => 'Please verify our captcha'
]
]);
required
- Checks if the input is not emptyminlength
- Checks if the input is longer than a specific valuemaxlength
- Checks if the input is lower than a specific valueemail
- Checks if the input is a valid emailurl
- Checks if the input is an URLnumber
- Checks if the input is a numbermin
- Checks if the input is higher than the defined valuemax
- Checks if the input is lower than the defined valuebetween
- Checks if the input is between two numbers (combination of max and min)regex
- Checks if the input matches a specified regex
See this issue to learn more
I'm open for pull requests and would love to see some support. I'm not the 100% best PHP developer and would love to get this Flynt feature even better so we're not bound to damn Wordpress Plugins anymore.
This is licensed under the MIT license.