Completed
Push — feature/middleware ( 266b0a...9b1d41 )
by Derek Stephen
03:19
created

Dragon::getDob()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace BoneMvc\Module\Dragon\Entity;
6
7
use DateTime;
8
use Doctrine\ORM\Mapping as ORM;
9
use JsonSerializable;
10
11
/**
12
 * @ORM\Entity(repositoryClass="\BoneMvc\Module\Dragon\Repository\DragonRepository")
13
 */
14
class Dragon
15
{
16
    /**
17
     * @var int $id
18
     * @ORM\Id
19
     * @ORM\Column(type="integer")
20
     * @ORM\GeneratedValue
21
     */
22
    private $id;
23
24
    /**
25
     * @var string $name
26
     * @ORM\Column(type="string", length=30, nullable=false)
27
     */
28
    private $name;
29
30
    /**
31
     * @var DateTime $dob
32
     * @ORM\Column(type="date", nullable=true)
33
     */
34
    private $dob;
35
36
    /**
37
     * @return int
38
     */
39
    public function getId(): ?int
40
    {
41
        return $this->id;
42
    }
43
44
    /**
45
     * @param int $id
46
     */
47
    public function setId($id): void
48
    {
49
        $this->id = $id;
50
    }
51
52
    /**
53
     * @return string
54
     */
55
    public function getName(): string
56
    {
57
        return $this->name;
58
    }
59
60
    /**
61
     * @param string $name
62
     */
63
    public function setName(string $name): void
64
    {
65
        $this->name = $name;
66
    }
67
68
    /**
69
     * @return DateTime
70
     */
71
    public function getDob(): ?DateTime
72
    {
73
        return $this->dob;
74
    }
75
76
    /**
77
     * @param DateTime $dob
78
     */
79
    public function setDob(DateTime $dob): void
80
    {
81
        $this->dob = $dob;
82
    }
83
84
    /**
85
     * @return array
86
     * @param string $dateFormat
87
     */
88
    public function toArray(string $dateFormat = 'd/m/Y'): array
89
    {
90
        $data = [
91
            'id' => $this->getId(),
92
            'name' => $this->getName(),
93
            'dob' => ($dob = $this->getDob()) ? $dob->format($dateFormat) : null,
94
        ];
95
96
        return $data;
97
    }
98
99
    /**
100
     * @return string
101
     */
102
    public function jsonSerialize(): string
103
    {
104
        return \json_encode($this->toArray());
105
    }
106
107
    /**
108
     * @return string
109
     */
110
    public function __toString(): string
111
    {
112
        return $this->jsonSerialize();
113
    }
114
}
115