Skip to content

Commit fd462a6

Browse files
committed
add some validators
1 parent 422f2f6 commit fd462a6

File tree

2 files changed

+90
-13
lines changed

2 files changed

+90
-13
lines changed

README.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,17 @@ composer require izica/phalcon-validation
1111
Izica\Validation
1212
* __construct($arOptions) // example below
1313
* validate($arData)
14-
* static required($arOptions) //Phalcon\Validation\Validator\PresenceOf
15-
* static numeric($arOptions) //Phalcon\Validation\Validator\Numericality
16-
* static email($arOptions) //Phalcon\Validation\Validator\Email
17-
* TODO ----
18-
* length
19-
* callback
20-
* etc
14+
* static required($arOptions: optional) //Phalcon\Validation\Validator\PresenceOf
15+
* static numeric($arOptions: optional) //Phalcon\Validation\Validator\Numericality
16+
* static email($arOptions: optional) //Phalcon\Validation\Validator\Email
17+
* static url($arOptions: optional) //Phalcon\Validation\Validator\Url
18+
* static callback($arOptions) //Phalcon\Validation\Validator\Callback
19+
* static length($arOptions) //Phalcon\Validation\Validator\StringLength
20+
* static unique($arOptions) //Phalcon\Validation\Validator\UniquenessValidator
21+
* static between($arOptions) //Phalcon\Validation\Validator\Between
22+
* static file($arOptions) //Phalcon\Validation\Validator\File
23+
* static date($arOptions) //Phalcon\Validation\Validator\Date
24+
* static regex($arOptions) //Phalcon\Validation\Validator\Regex
2125

2226
### Notice
2327
[https://docs.phalconphp.com/3.4/en/api/phalcon_validation_validator_numericality]

Validation.php

Lines changed: 79 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,31 @@
44

55
use Phalcon\Validation as PhalconValidation;
66
use 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;
712
use Phalcon\Validation\Validator\PresenceOf;
813
use Phalcon\Validation\Validator\Numericality;
14+
use Phalcon\Validation\Validator\Url;
15+
use Phalcon\Validation\Validator\Date;
16+
use Phalcon\Validation\Validator\Regex;
917

1018
class 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

Comments
 (0)