public function validate($input, $all = false) : bool
{
$this->input = $input;
$this->invalid = [];
// clean
foreach ($this->rules as $rule) {
if (!$rule->validate($this->input)) {
$this->invalid[] = $rule;
if (!$all) {
break;
}
}
}
return sizeof($this->invalid) ? false : true;
}