From ef1dd318d437bb33adddf226c546e85f4744ce8c Mon Sep 17 00:00:00 2001 From: Asko Nõmm Date: Mon, 25 Sep 2023 01:35:47 +0300 Subject: Update stuff --- src/Hird.php | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) (limited to 'src/Hird.php') 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 + * @author Asko Nomm */ 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; } /** -- cgit v1.2.3