-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathValidatePassword.php
60 lines (52 loc) · 1.44 KB
/
ValidatePassword.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use Macocci7\PurephpValidation\Rules\PasswordWrapper as Password;
use Macocci7\PurephpValidation\ValidatorFactory as Validator;
// Input
$user = [
'name' => 'foo bar',
'email' => '[email protected]',
'password' => 'foo',
];
// Valiation Rules
$rules = [
'name' => 'required|string|min:3|max:10',
'email' => 'required|string|email:rfc',
'password' => [
'required',
Password::min(8)
->max(16)
// at least one letter
->letters()
// at least one uppercase
// and at least one lowercase letter
->mixedCase()
// at least one number
->numbers()
// at least one symbol
->symbols()
// not in a data leak
->uncompromised(),
],
];
// Messages
$messages = [
'password.mixed' => 'Password must include at least one uppercase and one lowercase letter.',
'password.numbers' => 'Password must include at least one number.',
'password.symbols' => 'Password must include at least one symbol.',
];
// Attributes
$attributes = [];
// Validation
$validator = Validator::make(
data: $user,
rules: $rules,
messages: $messages,
attributes: $attributes
);
// Checking Result
if ($validator->fails()) {
var_dump($validator->errors()->messages());
} else {
echo "🎊 Passed 🎉" . PHP_EOL;
}