composer require klapuch/validation
(new EmptyRule())->satified('abc'); // false
(new EmptyRule())->satified(''); // true
(new EmptyRule())->apply('abc'); // \UnexpectedValueException - 'Subject is not empty'
(new FriendlyRule(new EmptyRule(), 'Not empty!'))->apply('abc'); // \UnexpectedValueException - 'Not empty!'
(new ChainedRule(
new FriendlyRule(
new NegateRule(new EmptyRule()),
'Value can not be empty'
),
new LengthRule(10),
new PassiveRule, // it does nothing
new EmailRule(),
))->apply('abc');
The above code says that a value can not be empty, length of the value must be exact 10 characters and the value must be email.