/
example_01.php
72 lines (60 loc) · 1.52 KB
/
example_01.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
61
62
63
64
65
66
67
68
69
70
71
72
<?php
require_once 'vendor/autoload.php';
use Respect\Validation\Exceptions\NestedValidationException;
use Respect\Validation\Rules\AllOf;
use Respect\Validation\Validator as v;
use Respect\Validation\Factory;
$dynamicObject = new class {
protected array $data;
public function __get(string $name)
{
return $this->data[$name] ?? null;
}
public function __set(string $name, $value): void
{
$this->data[$name] = $value;
}
public function __isset(string $name): bool
{
return isset($this->data[$name]);
}
public function __unset(string $name): void
{
unset($this->data[$name]);
}
};
$dynamicObject->firstname = 'John Wesley';
$dynamicObject->lastname = 'Connor';
$dynamicObject->age = 36;
Factory::setDefaultInstance(
(new Factory())
->withRuleNamespace('RespectValidationRules\\Rules')
->withExceptionNamespace('RespectValidationRules\\Exceptions')
);
$validator = new AllOf(
v::dynamicAttr(
'firstname',
v::stringType()
->alpha()
->length(2, 10)
),
v::dynamicAttr(
'lastname',
v::stringType()
->length(null, 190)
->setName('Lastname'),
false // property can be undefined
),
v::dynamicAttr(
'age',
v::intVal()
->min(18)
)
);
try {
$validator->assert($dynamicObject);
echo "valid\n";
} catch (NestedValidationException $exception) {
echo "Not valid\n";
print_r($exception->getMessages());
}