summaryrefslogtreecommitdiff
path: root/src/Hird.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Hird.php')
-rw-r--r--src/Hird.php22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/Hird.php b/src/Hird.php
index d1b85cc..f60eca8 100644
--- a/src/Hird.php
+++ b/src/Hird.php
@@ -47,11 +47,14 @@ class Hird
{
private array $errors = [];
private array $validators = [];
+ private array $fieldNames = [];
public function __construct(
private array $fields,
private array $rules,
+ array $fieldNames = []
) {
+ $this->composeFieldNames($fieldNames);
$this->registerDefaultValidators();
}
@@ -69,6 +72,23 @@ class Hird
}
/**
+ * Composes the field names array.
+ *
+ * @param array $fieldNames
+ * @return void
+ */
+ private function composeFieldNames(array $fieldNames): void
+ {
+ $updatedFieldNames = [];
+
+ foreach ($this->fields as $field => $value) {
+ $updatedFieldNames[$field] = $fieldNames[$field] ?? $field;
+ }
+
+ $this->fieldNames = $updatedFieldNames;
+ }
+
+ /**
* Registers a validator to a `$ruleName`.
*
* @param string $ruleName
@@ -81,7 +101,7 @@ class Hird
$instance = null;
if ($class->getConstructor() !== null) {
- $instance = $class->newInstanceArgs([$this->fields]);
+ $instance = $class->newInstanceArgs([$this->fields, $this->fieldNames]);
} else {
$instance = $class->newInstance();
}