2017 © Pedro Peláez
 

library validation-result

A result object for validation

image

jasny/validation-result

A result object for validation

  • Wednesday, May 4, 2016
  • by jasny
  • Repository
  • 0 Watchers
  • 1 Stars
  • 39,868 Installations
  • PHP
  • 6 Dependents
  • 0 Suggesters
  • 3 Forks
  • 1 Open issues
  • 4 Versions
  • 12 % Grown

The README.md

jasny-banner, (*1)

Validation result

PHP Scrutinizer Code Quality Code Coverage Packagist Stable Version Packagist License, (*2)

A result object for a validation function., (*3)

Installation

composer require jasny/validation-result

Examples

Validate variable
use Jasny\ValidationResult;

function validateVar($var)
{
    if (isset($var)) return ValidationResult::error("var isn't set");
    if ($var < 30) return ValidationResult::error("var is less than thirty");

    return ValidationResult::success();
}

$validation = validateVar($myVar);
if ($validation->failed()) echo $validation->getError();
Validate POST request
use Jasny\ValidationResult;

function validateInput($input)
{
    $validation = new ValidationResult();

    if (!isset($input['baz'])) $validation->addError("baz isn't set");
    if (!isset($input['qux'])) $validation->addError("qux isn't set");

    return $validation;
}

$validation = validateInput($_POST);

if ($validation->succeeded()) {
    // Handle POST and redirect
    exit();
}

loadTemplate('myTemplate', ['errors' => $validation->getErrors()]);

Subvalidation

You can add the validation result of a subvalidation using the add() method. It's possible to prefix all the errors of the subvalidation., (*4)

use Jasny\ValidationResult;

function validateInput($input)
{
    $validation = new ValidationResult();

    if (!isset($input['baz'])) $validation->addError("baz isn't set");
    if (!isset($input['qux'])) $validation->addError("qux isn't set");

    if (isset($input['foo'])) {
        $fooValidation = validateFoo($input['foo']);
        $validation->add($fooValidation, 'foo');
    }

    return $validation;
}

function validateFoo($foo)
{
    $validation = new ValidationResult();

    if (empty($foo['name'])) $validation->addError("name isn't set");
    if (empty($foo['age'])) $validation->addError("age isn't set");

    return $validation;
}

$validation = validateInput($_POST);

Translation

It's possible to translate the error messages using a callback., (*5)

use Jasny\ValidationResult;

$aliases = [
    "%s isn't set" => 'Please set %s',
    "%s is less than %d" => 'Please choose a value higher than %2$d for %1$s'
];

ValidationResult::$translate = function($message) use ($aliases) {
    return isset($aliases[$message]) ? $aliases[$message] : $message;
};

function validateVar($var)
{
    if (isset($var)) return ValidationResult::error("%s isn't set", 'Var');
    if ($var < 30) return ValidationResult::error("%s is less than %d", 'Var', 30);
}

or simply, (*6)

ValidationResult::$translate = 'gettext';

The Versions

04/05 2016

dev-master

9999999-dev

A result object for validation

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

validation

14/03 2016

v1.0.0

1.0.0.0

A result object for validation

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

validation

10/09 2015

v0.1.1

0.1.1.0

A result object for validation

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

validation

10/08 2015

v0.1.0

0.1.0.0

A result object for validation

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

validation