An easy to use and strait to the point validation trait for Fat Free Framework
composer require geofmureithi/f3-validate
Copy the lib\validate.php
file to the lib folder or any root of an auto included folder.
Remember it requires at least php 5.4 to use traits
class Profile
{
use Validate; //<--- Trait
public function getRules()
{
return [
"email" => "reqired|email"
];
}
public function save()
{
//.....
}
}
$data = $f3->get('POST')
$profile = new Profile();
$result = $profile->check($data);
if( $result != true) return $result; //errors
$profile->save();
- required
Ensures the specified key value exists and is not empty
- email
Checks for a valid email address
- max_length,n
Checks key value length, makes sure it's not longer than the specified length. n = length parameter.
- min_length,n
Checks key value length, makes sure it's not shorter than the specified length. n = length parameter.
- exact_length,n
Ensures that the key value length precisely matches the specified length. n = length parameter.
- alpha
Ensure only alpha characters are present in the key value (a-z, A-Z)
- alpha_numeric
Ensure only alpha-numeric characters are present in the key value (a-z, A-Z, 0-9)
- numeric
Ensure only numeric key values
- boolean
Checks for PHP accepted boolean values, returns TRUE for "1", "true", "on" and "yes"
- url
Check for valid URL or subdomain
- ipv4
Check for valid IPv4 address
- ipv6
Check for valid IPv6 address
- card
Check for a valid credit card number (Uses the MOD10 Checksum Algorithm)
- phone
Validate phone numbers that match the following examples: 555-555-5555 , 5555425555, 555 555 5555, 1(519) 555-4444, 1 (519) 555-4422, 1-555-555-5555
- regex
You can pass a custom regex using the following format: 'regex,/your-regex/'
Adding custom validators and filters is made easy by using callback functions.
$message = "The value of {0} must include each of these items : {1}";
Validate::addValidator("contains", function ($value, $ruleConfigs) {
$required = explode("&", substr($ruleConfigs[0], 1, -1));
$diff = array_diff($required, explode(",", $value));
return empty($diff);
}, $message);
//Or
Validate::addValidator("custom", "SampleClass::testCustom", "Custom Error");
- Add Tests and Travis
- Convert to Trait
- Use Audit and make Lib more lightweight
- Allow Translations
- Add Composer
- Add detailed Examples
Tests are run using PHPUnit
./vendor/bin/phpunit --bootstrap vendor/autoload.php --testdox tests
See the tests folder for now
Feel free to Create a PR