summaryrefslogtreecommitdiff
path: root/src/Hird.php
diff options
context:
space:
mode:
authorAsko Nõmm <asko@repl.ee>2023-09-25 01:35:47 +0300
committerAsko Nõmm <asko@repl.ee>2023-09-25 01:35:47 +0300
commitef1dd318d437bb33adddf226c546e85f4744ce8c (patch)
tree8910bd4cc0b2ce2827aecfa19ecf2453058af575 /src/Hird.php
parentd2a1290423e1102b23fc8e042cef5420a42c02af (diff)
Update stuff
Diffstat (limited to 'src/Hird.php')
-rw-r--r--src/Hird.php35
1 files changed, 22 insertions, 13 deletions
diff --git a/src/Hird.php b/src/Hird.php
index 933afe0..d1b85cc 100644
--- a/src/Hird.php
+++ b/src/Hird.php
@@ -2,13 +2,13 @@
declare(strict_types=1);
-namespace Askonomm\Hird;
+namespace Asko\Hird;
-use Askonomm\Hird\Validators\DateFormatValidator;
-use Askonomm\Hird\Validators\Validator;
-use Askonomm\Hird\Validators\LenValidator;
-use Askonomm\Hird\Validators\EmailValidator;
-use Askonomm\Hird\Validators\RequiredValidator;
+use Asko\Hird\Validators\DateFormatValidator;
+use Asko\Hird\Validators\Validator;
+use Asko\Hird\Validators\LenValidator;
+use Asko\Hird\Validators\EmailValidator;
+use Asko\Hird\Validators\RequiredValidator;
/**
* Hird takes in an array of `$fields` and an array of
@@ -41,7 +41,7 @@ use Askonomm\Hird\Validators\RequiredValidator;
* }
* ```
*
- * @author Asko Nomm <asko@bien.ee>
+ * @author Asko Nomm <asko@asko.dev>
*/
class Hird
{
@@ -62,10 +62,10 @@ class Hird
*/
private function registerDefaultValidators(): void
{
- $this->registerValidator('len', (new LenValidator));
- $this->registerValidator('email', (new EmailValidator));
- $this->registerValidator('required', (new RequiredValidator));
- $this->registerValidator('date-format', (new DateFormatValidator));
+ $this->registerValidator('len', LenValidator::class);
+ $this->registerValidator('email', EmailValidator::class);
+ $this->registerValidator('required', RequiredValidator::class);
+ $this->registerValidator('date-format', DateFormatValidator::class);
}
/**
@@ -75,9 +75,18 @@ class Hird
* @param Validator $validator
* @return void
*/
- public function registerValidator(string $ruleName, Validator $validator): void
+ public function registerValidator(string $ruleName, string $validator): void
{
- $this->validators[$ruleName] = $validator;
+ $class = new \ReflectionClass($validator);
+ $instance = null;
+
+ if ($class->getConstructor() !== null) {
+ $instance = $class->newInstanceArgs([$this->fields]);
+ } else {
+ $instance = $class->newInstance();
+ }
+
+ $this->validators[$ruleName] = $instance;
}
/**