fields = $fields; } /* * Fluent Style */ public static function create(FieldValidator ...$fields) { return new FormValidator(...$fields); } /* * Methods */ public function isValid() { foreach ($this->fields as $field) { if (!$field->isValid) return false; } return true; } public function getErrors() { $errors = []; foreach ($this->fields as $field) { if (!$field->isValid()) array_push($errors, $field->getError()); } return $errors; } public function getField(string $name) { $field = current(array_filter($this->fields, fn ($field) => strcmp($field->getName(), $name) === 0)); if ($field !== false) { return $field; } return "No field named $name"; } }