lexuss1979/validol

simple php validator

1.0.0 2020-05-13 06:39 UTC

This package is auto-updated.

Last update: 2024-06-23 18:52:42 UTC


README

validol

php validator

Scrutinizer Code Quality

Code Coverage

Installation

Install the latest version with

$ composer require lexuss1979/validol

Basic Usage

<?php
use Lexuss1979\Validol\Validator;

$validation = Validator::process(['name' => 'Olga', 'age' => 18], [
    'name' => 'required string min_len:2',
    'age' => 'required integer min:16'
]);
if ($validation->success()){
    // Data is valid
    return $validation->data();
} else {
    // There are errors
   var_dump($validation->errors());
}

Required vs Sometimes

<?php

use Lexuss1979\Validol\Validator;
$validation = Validator::process([], ['age' => 'required']);
//fails 
$validation = Validator::process([], ['age' => 'sometimes integer']);
//success 
$validation = Validator::process([ 'age' => 'seventeen' ], ['age' => 'sometimes integer']);
// fails because age must be an integer value if presents

Validated data

You can get validated data with $validation->data(). It will contain only keys that was successfully validated.

<?php
use Lexuss1979\Validol\Validator;

$validation = Validator::process(['name' => 'Olga', 'age' => 18, 'email' => 'olga@gmail.test'], [
   'name' => 'required string min_len:2',
   'age' => 'required integer min:16'
]);
var_dump($validation->data());
//  ['name' => 'Olga', 'age' => 18] 

Errors

If validation fail you can access validation errors through $validation-errors(). It returns associative array like this.

<?php
use Lexuss1979\Validol\Validator;

$validation = Validator::process(['name' => 'Olga', 'age' => ''], [
   'address' => 'required string',
   'age' => 'required integer min:16'
]);

var_dump($validation->errors());
// ['address' => ['address must be specified'], 'age' => ['age must be an integer value']]

Keys alias

Use 'as' keyword to change data keys signature after validation.

<?php
use Lexuss1979\Validol\Validator;

$validation = Validator::process(['firstname' => 'Olga'], [
   'firstname as name' => 'required']);
var_dump($validation->data());
//  ['name' => 'Olga'] 

Error messages

You can specify your own error messages for validations set.

<?php
use Lexuss1979\Validol\Validator;

$validation = Validator::process(['weight' => 'heavy'], [
   'weight' => ['required integer min:10' => 'Something is wrong']
]);
var_dump($validation->errors());
//  ['weight' => ['Something is wrong']]