11<?php
22
33namespace Atakde \PhpValidation ;
4+
45use Atakde \PhpValidation \Exception \InvalidRuleException ;
56
67class Validator
@@ -17,6 +18,8 @@ public function __construct()
1718 'email ' => new Rule \EmailRule (),
1819 'password ' => new Rule \PasswordRule (),
1920 'required ' => new Rule \RequiredRule (),
21+ 'max ' => new Rule \MaxRule (),
22+ 'min ' => new Rule \MinRule ()
2023 ];
2124 }
2225
@@ -25,10 +28,13 @@ public function validate($rules, $params)
2528 foreach ($ rules as $ ruleField => $ ruleString ) {
2629 $ ruleArray = explode ('| ' , $ ruleString );
2730 foreach ($ ruleArray as $ rule ) {
28- if (isset ($ this ->validators [$ rule ])) {
31+ $ ruleSettings = $ this ->parseRule ($ rule );
32+
33+ if (isset ($ this ->validators [$ ruleSettings ['rule ' ]])) {
2934 $ checkValue = isset ($ params [$ ruleField ]) ? $ params [$ ruleField ] : null ;
30- if (!$ this ->validators [$ rule ]->check ($ checkValue )) {
31- $ this ->errors [$ ruleField ][] = $ this ->validators [$ rule ]->getMessage ();
35+
36+ if (!$ this ->validators [$ ruleSettings ['rule ' ]]->check ($ checkValue , $ ruleSettings ['params ' ])) {
37+ $ this ->errors [$ ruleField ][] = $ this ->validators [$ ruleSettings ['rule ' ]]->getMessage ();
3238 }
3339 } else {
3440 throw new InvalidRuleException ('Rule ' . $ rule . ' is not defined ' );
@@ -37,6 +43,18 @@ public function validate($rules, $params)
3743 }
3844 }
3945
46+ private function parseRule ($ rule )
47+ {
48+ $ ruleSettings = explode (': ' , $ rule );
49+ $ ruleName = $ ruleSettings [0 ];
50+ $ ruleParams = isset ($ ruleSettings [1 ]) ? $ ruleSettings [1 ] : null ;
51+
52+ return [
53+ 'rule ' => $ ruleName ,
54+ 'params ' => [$ ruleParams ]
55+ ];
56+ }
57+
4058 public function fails ()
4159 {
4260 return count ($ this ->errors ) > 0 ;
0 commit comments