TimestampableTrait   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 61
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 0

Importance

Changes 0
Metric Value
dl 0
loc 61
c 0
b 0
f 0
wmc 7
lcom 2
cbo 0
rs 10

7 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A _timestampable_prePersist() 0 4 1
A _timestampable_preUpdate() 0 4 1
A getCreatedAt() 0 4 1
A setCreatedAt() 0 6 1
A getUpdatedAt() 0 4 1
A setUpdatedAt() 0 6 1
1
<?php declare(strict_types = 1);
2
3
namespace Fousky\Traits\Timestampable;
4
5
use Doctrine\ORM\Mapping as ORM;
6
7
/**
8
 * @ORM\HasLifecycleCallbacks()
9
 *
10
 * @author Lukáš Brzák <[email protected]>
11
 */
12
trait TimestampableTrait
13
{
14
    /**
15
     * @var \DateTime|null
16
     *
17
     * @ORM\Column(name="created_at", type="datetime", nullable=false)
18
     */
19
    protected $createdAt;
20
21
    /**
22
     * @var \DateTime|null
23
     *
24
     * @ORM\Column(name="updated_at", type="datetime", nullable=true)
25
     */
26
    protected $updatedAt;
27
28
    public function __construct()
29
    {
30
        $this->createdAt = new \DateTime();
31
    }
32
33
    /**
34
     * @ORM\PrePersist()
35
     */
36
    public function _timestampable_prePersist(): void
37
    {
38
        $this->createdAt = new \DateTime();
39
    }
40
41
    /**
42
     * @ORM\PreUpdate()
43
     */
44
    public function _timestampable_preUpdate(): void
45
    {
46
        $this->updatedAt = new \DateTime();
47
    }
48
49
    public function getCreatedAt(): ?\DateTime
50
    {
51
        return $this->createdAt;
52
    }
53
54
    public function setCreatedAt(?\DateTime $createdAt): self
55
    {
56
        $this->createdAt = $createdAt;
57
58
        return $this;
59
    }
60
61
    public function getUpdatedAt(): ?\DateTime
62
    {
63
        return $this->updatedAt;
64
    }
65
66
    public function setUpdatedAt(?\DateTime $updatedAt): self
67
    {
68
        $this->updatedAt = $updatedAt;
69
70
        return $this;
71
    }
72
}
73