@@ -18,15 +18,66 @@ class Validate extends Config
1818 private static $ library_errors = [];
1919
2020
21- private static function checkRules ($ data ,$ rule ){
21+ private static function checkRules ($ data ,$ rule ) : bool {
2222 //string match.. max_length match max_length[5]
23- if ( preg_match ( ' /max_length/ ' , $ rule ) ){
24- echo " var " ;
23+ foreach ( self :: $ rule_pattern as $ pattern ){
24+ if ( preg_match ( $ pattern , $ rule )){
2525
26+ $ rulePattern = self ::$ rule_pattern_check [$ pattern ];
27+
28+
29+
30+ if (!preg_match ($ rulePattern ['pattern ' ], $ rule , $ matches )){
31+ self ::$ library_errors [] = $ rulePattern ['not_numeric_rule ' ];
32+ return false ;
33+ }
34+
35+ if ($ rulePattern ['parameter ' ]){
36+
37+ preg_match ($ rulePattern ['pattern_check ' ] ,$ rule , $ matches );
38+
39+ if (!is_numeric ($ matches [1 ])){
40+ self ::$ library_errors [] = $ rulePattern ['not_numeric_rule ' ];
41+ return false ;
42+ }
43+
44+
45+
46+ if ($ rulePattern ['pattern_type ' ] == "numeric " ){
47+ //numeric check
48+ $ numerical = $ matches [1 ];
49+
50+ $ checkStatus = true ;
51+
52+
53+
54+ if ($ rulePattern ['name ' ] == 'max_length ' ){
55+ if (strlen ($ data ['value ' ]) > $ numerical ){
56+ $ checkStatus = false ;
57+ }
58+ }if ($ rulePattern ['name ' ] == 'min_length ' ) {
59+ if (strlen ($ data ['value ' ]) < $ numerical ) {
60+ $ checkStatus = false ;
61+ }
62+ }
63+
64+
65+
66+ if ($ checkStatus === false ){
67+ self ::$ errors ['status ' ] = 0 ;
68+ if (isset (self ::$ errorMessages [$ data ['name ' ]]['min_length ' ])){
69+ self ::$ errors [] = self ::$ errorMessages [$ data ['name ' ]]['min_length ' ];
70+ }else {
71+ self ::$ errors [] = str_replace (':field ' , $ data ['name ' ], self ::$ error_messages [$ rulePattern ['name ' ]]);
72+ }
73+ }
74+ }
75+ }
76+ }
2677 }
2778
2879
29- return $ rule . " <br> " ;
80+ return true ;
3081 }
3182
3283 private static function getRules ($ rules ) : array {
@@ -84,16 +135,23 @@ public static function validateRule($data, $rules) : array {
84135 foreach (self ::$ rules as $ key => $ value ){
85136 foreach ($ value as $ k => $ v ) {
86137 //check if the rule has a parameter
87- $ rule = self ::checkRules ($ data , $ v );
138+ $ rule = self ::checkRules (['name ' => $ key , 'value ' => $ data [$ key ]], $ v );
139+ if (!$ rule ){
140+ return self ::$ library_errors ;
141+ }
142+ }
143+ }
88144
89- echo $ rule ;
90145
91- }
92146
93- }
147+ return self ::$ errors ;
148+
149+ }
150+
94151
95152
96- return [ self ::$ rules ,self ::$ errorMessages ];
153+ public function getErrors (){
154+ return self ::$ errors ;
97155 }
98156
99157
0 commit comments