This is a simple PHP standalone trait, that can be used to validate properties in any object. The validation process based on the Symfony Validation Component
This library requeired PHP version 7.2 or highter. And composer - package manger for PHP.
$ composer require b-tokman/validation After the installation you'll be able to use the bTokman\validation\ValidationTrait trait in your app.
You cannot override a trait's property in the class where the trait is used. However, you can override a trait's property in a class that extends the class where the trait is used:
- Start using trait in your base class
- Declare validation rules in your extended class. List of availible Rules
- On a new instance of your class just call method
validate.
class BaseObject
{
use bTokman\validation\ValidationTrait;
}
......
class ValidationObject extends BaseObject
{
public $validationRules = [
'password' => [NotBlank::class, [Length::class, ['min' => 8]]],
];
public $password;
}
......
$object = new ValidationObject();
$result = $object->validate();
Or you can override a trait's property in a class constructor:
class ValidationObject
{
use bTokman\validation\ValidationTrait;
public function __construct()
{
$this->validationRules = [
'password' => [NotBlank::class, [Length::class, ['min' => 8]]],
];
}
public $password;
}
$object = new ValidationObject();
$result = $object->validate();The validation result is
arrayof errors[[fieldName] => [errorMessage1, errorMessag2, ...].nullif the validation was passed.