44
55use Phalcon \Validation as PhalconValidation ;
66use Phalcon \Validation \Validator \Email ;
7+ use Phalcon \Validation \Validator \StringLength ;
8+ use Phalcon \Validation \Validator \Between ;
9+ use Phalcon \Validation \Validator \File ;
10+ use Phalcon \Validation \Validator \UniquenessValidator ;
11+ use Phalcon \Validation \Validator \Callback ;
712use Phalcon \Validation \Validator \PresenceOf ;
813use Phalcon \Validation \Validator \Numericality ;
14+ use Phalcon \Validation \Validator \Url ;
15+ use Phalcon \Validation \Validator \Date ;
16+ use Phalcon \Validation \Validator \Regex ;
917
1018class Validation {
11- private static $ sTypeRequired = 'required ' ;
12- private static $ sTypeNumeric = 'numeric ' ;
13- private static $ sTypeEmail = 'email ' ;
1419 private $ arOptions = [];
1520 public static $ arValidators = [
1621 'required ' => PresenceOf::class,
1722 'numeric ' => Numericality::class,
1823 'email ' => Email::class,
24+ 'unique ' => UniquenessValidator::class,
25+ 'callback ' => Callback::class,
26+ 'length ' => StringLength::class,
27+ 'between ' => Between::class,
28+ 'file ' => File::class,
29+ 'url ' => Url::class,
30+ 'date ' => Date::class,
31+ 'regex ' => Regex::class,
1932 ];
2033
2134 function __construct ($ arOptions ) {
@@ -57,7 +70,7 @@ public static function required(
5770 ]
5871 ) {
5972 return [
60- 'type ' => self :: $ sTypeRequired ,
73+ 'type ' => ' required ' ,
6174 'options ' => $ arOptions
6275 ];
6376 }
@@ -68,7 +81,18 @@ public static function numeric(
6881 ]
6982 ) {
7083 return [
71- 'type ' => self ::$ sTypeNumeric ,
84+ 'type ' => 'numeric ' ,
85+ 'options ' => $ arOptions
86+ ];
87+ }
88+
89+ public static function url (
90+ $ arOptions = [
91+ 'message ' => ':field must be a url '
92+ ]
93+ ) {
94+ return [
95+ 'type ' => 'url ' ,
7296 'options ' => $ arOptions
7397 ];
7498 }
@@ -79,7 +103,56 @@ public static function email(
79103 ]
80104 ) {
81105 return [
82- 'type ' => self ::$ sTypeEmail ,
106+ 'type ' => 'email ' ,
107+ 'options ' => $ arOptions
108+ ];
109+ }
110+
111+ public static function unique ($ arOptions ) {
112+ return [
113+ 'type ' => 'unique ' ,
114+ 'options ' => $ arOptions
115+ ];
116+ }
117+
118+ public static function callback ($ arOptions ) {
119+ return [
120+ 'type ' => 'callback ' ,
121+ 'options ' => $ arOptions
122+ ];
123+ }
124+
125+ public static function length ($ arOptions ) {
126+ return [
127+ 'type ' => 'length ' ,
128+ 'options ' => $ arOptions
129+ ];
130+ }
131+
132+ public static function file ($ arOptions ) {
133+ return [
134+ 'type ' => 'file ' ,
135+ 'options ' => $ arOptions
136+ ];
137+ }
138+
139+ public static function between ($ arOptions ) {
140+ return [
141+ 'type ' => 'between ' ,
142+ 'options ' => $ arOptions
143+ ];
144+ }
145+
146+ public static function date ($ arOptions ) {
147+ return [
148+ 'type ' => 'date ' ,
149+ 'options ' => $ arOptions
150+ ];
151+ }
152+
153+ public static function regex ($ arOptions ) {
154+ return [
155+ 'type ' => 'regex ' ,
83156 'options ' => $ arOptions
84157 ];
85158 }
0 commit comments