Coder Social home page Coder Social logo

validator's Introduction

Yii Validator


Latest Stable Version Total Downloads Build status Code Coverage Mutation testing badge type-coverage static analysis psalm-level

This package provides data validation capabilities.

Features

  • Validates any data: arrays, objects, scalar values, etc.
  • Supports custom data sets.
  • Handles nested data structures (one-to-one and one-to-many).
  • Can read validation rules from PHP 8 attributes.
  • Error message formatting and translation.
  • Attribute names translation.
  • Conditional validation:
    • Skip validation of "empty" value with possibility to configure "empty" condition.
    • Skip further validation if an error occurred for the same attribute.
    • Skip validation depending on a condition.
  • Possibility to use context in rule handler.
  • Common rules bundled.
  • Supports DI container for creating custom rule handlers with extra dependencies.
  • Exporting rules options for using in the frontend.

Requirements

  • PHP 8.0 or higher.
  • mbstring PHP extension.

Installation

The package could be installed with composer:

composer require yiisoft/validator

General usage

Validator allows to check data in any format. For example, when data is an object:

use Yiisoft\Validator\Rule\AtLeast;
use Yiisoft\Validator\Rule\Email;
use Yiisoft\Validator\Rule\Length;
use Yiisoft\Validator\Rule\Number;
use Yiisoft\Validator\Rule\Required;
use Yiisoft\Validator\Validator;

#[AtLeast(['email', 'phone'])]
final class Person
{
    public function __construct(
        #[Required]
        #[Length(min: 2)]
        public ?string $name = null,

        #[Number(min: 21)]
        public ?int $age = null,

        #[Email]
        public ?string $email = null,

        public ?string $phone = null,
    ) {
    }
}

$person = new Person(
    name: 'John', 
    age: 17, 
    email: '[email protected]',
    phone: null
);

$result = (new Validator())->validate($person);

The validation result is an object that allows to check whether validation was successful:

$result->isValid();

It also contains errors occurred during validation:

$result->getErrorMessages();

Documentation

License

The Yii Validator is free software. It is released under the terms of the BSD License. Please see LICENSE for more information.

Maintained by Yii Software.

Support the project

Open Collective

Follow updates

Official website Twitter Telegram Facebook Slack

validator's People

Contributors

arogachev avatar samdark avatar vjik avatar xepozz avatar thenotsoft avatar rustamwin avatar stylecibot avatar dependabot[bot] avatar devanych avatar shoman4eg avatar romkatsu avatar kartavik avatar dehbka avatar terabytesoftw avatar fantom409 avatar armpogart avatar cebe avatar roxblnfk avatar githubjeka avatar mapeveri avatar kamarton avatar tomaszkane avatar kriptogenic avatar viktorprogger avatar wiperawa avatar olegbaturin avatar dependabot-preview[bot] avatar germanow avatar dizhovskyyd avatar darkdef avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.