Completed
Push — master ( 523188...25b8d9 )
by Siim
14:49
created

AbstractDto   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 41
rs 10
c 0
b 0
f 0
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A getPopulator() 0 3 1
A __construct() 0 3 1
A populate() 0 3 1
A toArray() 0 3 1
A setPopulator() 0 3 1
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: siim
5
 * Date: 24.01.19
6
 * Time: 16:01
7
 */
8
9
namespace Sf4\Api\Dto;
10
11
use Sf4\Populator\Populator;
12
13
abstract class AbstractDto implements DtoInterface
14
{
15
16
    protected $populator;
17
18
    public function __construct()
19
    {
20
        $this->setPopulator(new Populator());
21
    }
22
23
    /**
24
     * @param array $data
25
     * @throws \ReflectionException
26
     */
27
    public function populate(array $data): void
28
    {
29
        $this->getPopulator()->populate($data, $this);
30
    }
31
32
    /**
33
     * @return array
34
     */
35
    public function toArray(): array
36
    {
37
        return $this->getPopulator()->unpopulate($this);
38
    }
39
40
    /**
41
     * @return Populator
42
     */
43
    protected function getPopulator(): Populator
44
    {
45
        return $this->populator;
46
    }
47
48
    /**
49
     * @param Populator $populator
50
     */
51
    protected function setPopulator(Populator $populator): void
52
    {
53
        $this->populator = $populator;
54
    }
55
}
56