Passed
Pull Request — master (#10)
by Stanislau
03:20
created

anonymous//example/test.php$0   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 4
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 2
c 0
b 0
f 0
dl 0
loc 4
rs 10
wmc 1
1
<?php
2
3
require dirname(__FILE__) . '/../vendor/autoload.php';
4
5
/**
6
 *  Create default class generator facade
7
 */
8
$classGenerator = new \Micro\Library\DTO\ClassGeneratorFacadeDefault(
9
    ['./example.xml'],
10
    './out',
11
    'Transfer',
12
    'Transfer',
13
);
14
15
$classGenerator->generate();
16
17
/**
18
 * Require generated classes
19
 */
20
require_once 'out/Simple/SimpleObjectTransfer.php';
21
require_once 'out/Simple/SimpleUserTransfer.php';
22
require_once 'out/UserTransfer.php';
23
24
use Transfer\UserTransfer;
25
use Transfer\Simple\SimpleObjectTransfer;
26
use Micro\Library\DTO\SerializerFacadeDefault;
27
use Micro\Library\DTO\ValidatorFacadeDefault;
28
use Transfer\Simple\SimpleUserTransfer;
29
30
/**
31
 * Iterate DTO values
32
 */
33
$user = new UserTransfer();
0 ignored issues
show
Deprecated Code introduced by
The class Transfer\UserTransfer has been deprecated: Please, use gSON Example class description ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

33
$user = /** @scrutinizer ignore-deprecated */ new UserTransfer();
Loading history...
34
$user
35
    ->setFirstName('Stas')
36
    ->setUsername('Asisyas')
37
    ->setUpdatedAt(new DateTime('11.08.1989'))
38
    ->setBooks(
39
        [
40
            (new SimpleObjectTransfer())
41
                ->setHeight(1)
42
                ->setWeight(20)
43
                ->setParent(
44
                    (new SimpleObjectTransfer())
45
                        ->setHeight(100)
46
                        ->setWeight(2000)
47
                )
48
        ])
49
    ->setSomeclass(
50
        (new SimpleObjectTransfer())
51
            ->setWeight(1)
52
            ->setHeight(2)
53
    )
54
;
55
56
foreach ($user as $key => $value) {
57
    print_r("\r\nPROPERTY: " . $key . " ==== " . (is_scalar($value) ? $value : serialize($value)));
58
}
59
60
61
/**
62
 * Array access example
63
 */
64
print_r("\r\n\r\nFISRT BOOK HEIGHT : " . $user['books'][0]['height'] . "\r\n");
65
print_r('FISRT BOOK PARENT HEIGHT : ' . $user['books'][0]['parent']['height'] . "\r\n\r\n");
66
// Allowed too
67
$user['books'][0]['height'] = 12;
68
69
/**
70
 * Serialization example
71
 */
72
$classSerializerFacade = new SerializerFacadeDefault();
73
$jsonDto = $classSerializerFacade->toJsonTransfer($user);
74
$json = $classSerializerFacade->toJson($user);
75
76
print_r('Serialized DTO: ' . $jsonDto . "\r\n\r\n");
77
print_r('Serialize DTO as JSON: ' . $json . "\r\n\r\n");
78
79
$deserialized = $classSerializerFacade->fromJsonTransfer($jsonDto);
80
81
$className = get_class($user);
82
$okNo = get_class($deserialized) === $className ?'true' : 'false';
83
print_r( "Deserialize $className: $okNo \r\n");
84
85
/**
86
 * Validate DTO example
87
 */
88
$simpleUserParent = new SimpleObjectTransfer();
89
$simpleUserParent
90
    ->setWeight(9)
91
    ->setHeight(8);
92
93
$simpleUser = new SimpleUserTransfer();
94
$simpleUser
95
    ->setParent($simpleUserParent)
96
    ->setIp('192.168.0.1')
97
    ->setAge(19)
98
    ->setEmail('[email protected]')
99
    ->setHostname('localhost')
100
    ->setUsername('Asisyas')
101
    ->setSometext('azds')
102
    ->setUrl('//abc')
103
    ->setJson('{"test": 123}')
104
    ->setUuid('ffd4ff99-33ed-4a13-88cf-47e22de29dcc')
105
    ->setCreatedAt('2002-08-11 20:08:01')
106
    ->setUpdatedAt('2002-08-11')
107
    ->setTimezone('Europe/Minsk')
108
    ->setCardScheme('5555555555554444')
109
    ->setBic('MIDLGB22')
110
    ->setCurrency('USD')
111
    ->setIban('BY 13 NBRB 3600900000002Z00AB00')
112
    ->setIsbn('978-0-545-01022-1')
113
    ->setIssn('0378-5955')
114
    ->setIsin('US0378331005')
115
;
116
117
$validator = new ValidatorFacadeDefault();
118
$constraints = $validator->validate($simpleUser);
119
120
$validationStatus = !count($constraints) ? 'Validated': 'Validation error';
121
122
print_r("Validation status: $validationStatus\r\n");
123
124