|
4 | 4 |
|
5 | 5 | namespace RZ\Roadiz\Core\AbstractEntities; |
6 | 6 |
|
7 | | -use DateTime; |
8 | 7 | use Doctrine\ORM\Mapping as ORM; |
9 | | -use JMS\Serializer\Annotation as Serializer; |
10 | | -use Symfony\Component\Serializer\Annotation as SymfonySerializer; |
11 | 8 |
|
12 | 9 | /** |
13 | 10 | * An AbstractEntity with datetime fields to keep track of time with your items. |
| 11 | + * |
| 12 | + * @deprecated since 2.6, use composition with DateTimedTrait instead. |
14 | 13 | */ |
15 | | - |
16 | 14 | #[ |
17 | 15 | ORM\MappedSuperclass, |
18 | 16 | ORM\HasLifecycleCallbacks, |
19 | 17 | ORM\Table, |
20 | | - ORM\Index(columns: ["created_at"]), |
21 | | - ORM\Index(columns: ["updated_at"]), |
| 18 | + ORM\Index(columns: ['created_at']), |
| 19 | + ORM\Index(columns: ['updated_at']), |
22 | 20 | ] |
23 | | -abstract class AbstractDateTimed extends AbstractEntity |
| 21 | +abstract class AbstractDateTimed extends AbstractEntity implements DateTimedInterface |
24 | 22 | { |
25 | | - /** |
26 | | - * @var DateTime|null |
27 | | - */ |
28 | | - #[ |
29 | | - ORM\Column(name: "created_at", type: "datetime", nullable: true), |
30 | | - Serializer\Groups(["timestamps"]), |
31 | | - SymfonySerializer\Groups(["timestamps"]), |
32 | | - ] |
33 | | - protected ?DateTime $createdAt = null; |
34 | | - |
35 | | - /** |
36 | | - * @var DateTime|null |
37 | | - */ |
38 | | - #[ |
39 | | - ORM\Column(name: "updated_at", type: "datetime", nullable: true), |
40 | | - Serializer\Groups(["timestamps"]), |
41 | | - SymfonySerializer\Groups(["timestamps"]), |
42 | | - ] |
43 | | - protected ?DateTime $updatedAt = null; |
44 | | - |
45 | | - /** |
46 | | - * @return DateTime|null |
47 | | - */ |
48 | | - public function getCreatedAt(): ?DateTime |
49 | | - { |
50 | | - return $this->createdAt; |
51 | | - } |
52 | | - |
53 | | - /** |
54 | | - * @param DateTime|null $createdAt |
55 | | - * @return AbstractDateTimed |
56 | | - */ |
57 | | - public function setCreatedAt(?DateTime $createdAt) |
58 | | - { |
59 | | - $this->createdAt = $createdAt; |
60 | | - return $this; |
61 | | - } |
62 | | - |
63 | | - /** |
64 | | - * @return DateTime|null |
65 | | - */ |
66 | | - public function getUpdatedAt(): ?DateTime |
67 | | - { |
68 | | - return $this->updatedAt; |
69 | | - } |
70 | | - |
71 | | - /** |
72 | | - * @param DateTime|null $updatedAt |
73 | | - * @return AbstractDateTimed |
74 | | - */ |
75 | | - public function setUpdatedAt(?DateTime $updatedAt) |
76 | | - { |
77 | | - $this->updatedAt = $updatedAt; |
78 | | - return $this; |
79 | | - } |
80 | | - |
81 | | - protected function initAbstractDateTimed(): void |
82 | | - { |
83 | | - $this->setUpdatedAt(new DateTime("now")); |
84 | | - $this->setCreatedAt(new DateTime("now")); |
85 | | - } |
86 | | - |
87 | | - /** |
88 | | - * @return void |
89 | | - */ |
90 | | - #[ORM\PreUpdate] |
91 | | - public function preUpdate() |
92 | | - { |
93 | | - $this->setUpdatedAt(new DateTime("now")); |
94 | | - } |
95 | | - /** |
96 | | - * @return void |
97 | | - */ |
98 | | - #[ORM\PrePersist] |
99 | | - public function prePersist() |
100 | | - { |
101 | | - $this->setUpdatedAt(new DateTime("now")); |
102 | | - $this->setCreatedAt(new DateTime("now")); |
103 | | - } |
104 | | - /** |
105 | | - * Set creation and update date to *now*. |
106 | | - * |
107 | | - * @return AbstractEntity |
108 | | - */ |
109 | | - public function resetDates() |
110 | | - { |
111 | | - $this->setCreatedAt(new DateTime("now")); |
112 | | - $this->setUpdatedAt(new DateTime("now")); |
113 | | - |
114 | | - return $this; |
115 | | - } |
| 23 | + use DateTimedTrait; |
116 | 24 | } |
0 commit comments