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
array
of errors[[fieldName] => [errorMessage1, errorMessag2, ...]
.null
if the validation was passed.