summaryrefslogtreecommitdiff
path: root/src/ValidatorRules.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/ValidatorRules.php')
-rw-r--r--src/ValidatorRules.php50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/ValidatorRules.php b/src/ValidatorRules.php
new file mode 100644
index 0000000..d3599e0
--- /dev/null
+++ b/src/ValidatorRules.php
@@ -0,0 +1,50 @@
+<?php
+
+namespace Askonomm\Validator;
+
+class ValidatorRules
+{
+ public static function len(): array
+ {
+ return [
+ 'error' => function (string $field, mixed $modifier = 0): string {
+ return "{$field} is shorter than the required ${modifier} characters.";
+ },
+ 'validates' => function (string $value, mixed $modifier = 0): bool {
+ if (!isset($value) || strlen($value) < (int) $modifier) {
+ return false;
+ }
+
+ return true;
+ }
+ ];
+ }
+
+ public static function email(): array
+ {
+ return [
+ 'error' => function (string $field): string {
+ return "${field} is not a valid e-mail address.";
+ },
+ 'validates' => function (string $value): bool {
+ if (!isset($value) || !filter_var($value, FILTER_VALIDATE_EMAIL)) {
+ return false;
+ }
+
+ return true;
+ }
+ ];
+ }
+
+ public static function required(): array
+ {
+ return [
+ 'error' => function (string $field): string {
+ return "${field} is required.";
+ },
+ 'validates' => function (string $value): bool {
+ return isset($value) && $value !== '';
+ }
+ ];
+ }
+}