aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJeremy Benoist <jeremy.benoist@gmail.com>2017-07-06 09:00:37 +0200
committerJeremy Benoist <jeremy.benoist@gmail.com>2017-07-06 09:01:51 +0200
commit927c9e796ff6fad2bf82a965234f52932cdee657 (patch)
treed53d021f2f2c301646d40113330fdd6692cb08c5
parentb5d7eb148c4cd62ff187b08765f0c13c7d330fcf (diff)
downloadwallabag-927c9e796ff6fad2bf82a965234f52932cdee657.tar.gz
wallabag-927c9e796ff6fad2bf82a965234f52932cdee657.tar.zst
wallabag-927c9e796ff6fad2bf82a965234f52932cdee657.zip
Add EntityTimestampsTrait to handle dates
Refactorize timestamps() method to avoid re-writing it on each entity
-rw-r--r--src/Wallabag/AnnotationBundle/Entity/Annotation.php15
-rw-r--r--src/Wallabag/CoreBundle/Entity/Entry.php16
-rw-r--r--src/Wallabag/CoreBundle/Entity/SiteCredential.php13
-rw-r--r--src/Wallabag/CoreBundle/Helper/EntityTimestampsTrait.php24
-rw-r--r--src/Wallabag/UserBundle/Entity/User.php16
5 files changed, 36 insertions, 48 deletions
diff --git a/src/Wallabag/AnnotationBundle/Entity/Annotation.php b/src/Wallabag/AnnotationBundle/Entity/Annotation.php
index 04d83001..a180d504 100644
--- a/src/Wallabag/AnnotationBundle/Entity/Annotation.php
+++ b/src/Wallabag/AnnotationBundle/Entity/Annotation.php
@@ -10,6 +10,7 @@ use JMS\Serializer\Annotation\SerializedName;
10use JMS\Serializer\Annotation\VirtualProperty; 10use JMS\Serializer\Annotation\VirtualProperty;
11use Symfony\Component\Validator\Constraints as Assert; 11use Symfony\Component\Validator\Constraints as Assert;
12use Wallabag\CoreBundle\Entity\Entry; 12use Wallabag\CoreBundle\Entity\Entry;
13use Wallabag\CoreBundle\Helper\EntityTimestampsTrait;
13use Wallabag\UserBundle\Entity\User; 14use Wallabag\UserBundle\Entity\User;
14 15
15/** 16/**
@@ -22,6 +23,8 @@ use Wallabag\UserBundle\Entity\User;
22 */ 23 */
23class Annotation 24class Annotation
24{ 25{
26 use EntityTimestampsTrait;
27
25 /** 28 /**
26 * @var int 29 * @var int
27 * 30 *
@@ -134,18 +137,6 @@ class Annotation
134 } 137 }
135 138
136 /** 139 /**
137 * @ORM\PrePersist
138 * @ORM\PreUpdate
139 */
140 public function timestamps()
141 {
142 if (null === $this->createdAt) {
143 $this->createdAt = new \DateTime();
144 }
145 $this->updatedAt = new \DateTime();
146 }
147
148 /**
149 * Get created. 140 * Get created.
150 * 141 *
151 * @return \DateTime 142 * @return \DateTime
diff --git a/src/Wallabag/CoreBundle/Entity/Entry.php b/src/Wallabag/CoreBundle/Entity/Entry.php
index cba72d31..61d01bdc 100644
--- a/src/Wallabag/CoreBundle/Entity/Entry.php
+++ b/src/Wallabag/CoreBundle/Entity/Entry.php
@@ -12,6 +12,7 @@ use JMS\Serializer\Annotation\VirtualProperty;
12use JMS\Serializer\Annotation\XmlRoot; 12use JMS\Serializer\Annotation\XmlRoot;
13use Symfony\Component\Validator\Constraints as Assert; 13use Symfony\Component\Validator\Constraints as Assert;
14use Wallabag\AnnotationBundle\Entity\Annotation; 14use Wallabag\AnnotationBundle\Entity\Annotation;
15use Wallabag\CoreBundle\Helper\EntityTimestampsTrait;
15use Wallabag\UserBundle\Entity\User; 16use Wallabag\UserBundle\Entity\User;
16 17
17/** 18/**
@@ -32,6 +33,8 @@ use Wallabag\UserBundle\Entity\User;
32 */ 33 */
33class Entry 34class Entry
34{ 35{
36 use EntityTimestampsTrait;
37
35 /** @Serializer\XmlAttribute */ 38 /** @Serializer\XmlAttribute */
36 /** 39 /**
37 * @var int 40 * @var int
@@ -473,19 +476,6 @@ class Entry
473 } 476 }
474 477
475 /** 478 /**
476 * @ORM\PrePersist
477 * @ORM\PreUpdate
478 */
479 public function timestamps()
480 {
481 if (null === $this->createdAt) {
482 $this->createdAt = new \DateTime();
483 }
484
485 $this->updatedAt = new \DateTime();
486 }
487
488 /**
489 * @return ArrayCollection<Annotation> 479 * @return ArrayCollection<Annotation>
490 */ 480 */
491 public function getAnnotations() 481 public function getAnnotations()
diff --git a/src/Wallabag/CoreBundle/Entity/SiteCredential.php b/src/Wallabag/CoreBundle/Entity/SiteCredential.php
index 4d6557c5..ac714359 100644
--- a/src/Wallabag/CoreBundle/Entity/SiteCredential.php
+++ b/src/Wallabag/CoreBundle/Entity/SiteCredential.php
@@ -4,6 +4,7 @@ namespace Wallabag\CoreBundle\Entity;
4 4
5use Doctrine\ORM\Mapping as ORM; 5use Doctrine\ORM\Mapping as ORM;
6use Symfony\Component\Validator\Constraints as Assert; 6use Symfony\Component\Validator\Constraints as Assert;
7use Wallabag\CoreBundle\Helper\EntityTimestampsTrait;
7use Wallabag\UserBundle\Entity\User; 8use Wallabag\UserBundle\Entity\User;
8 9
9/** 10/**
@@ -15,6 +16,8 @@ use Wallabag\UserBundle\Entity\User;
15 */ 16 */
16class SiteCredential 17class SiteCredential
17{ 18{
19 use EntityTimestampsTrait;
20
18 /** 21 /**
19 * @var int 22 * @var int
20 * 23 *
@@ -182,14 +185,4 @@ class SiteCredential
182 { 185 {
183 return $this->user; 186 return $this->user;
184 } 187 }
185
186 /**
187 * @ORM\PrePersist
188 */
189 public function timestamps()
190 {
191 if (null === $this->createdAt) {
192 $this->createdAt = new \DateTime();
193 }
194 }
195} 188}
diff --git a/src/Wallabag/CoreBundle/Helper/EntityTimestampsTrait.php b/src/Wallabag/CoreBundle/Helper/EntityTimestampsTrait.php
new file mode 100644
index 00000000..1b1ff54a
--- /dev/null
+++ b/src/Wallabag/CoreBundle/Helper/EntityTimestampsTrait.php
@@ -0,0 +1,24 @@
1<?php
2
3namespace Wallabag\CoreBundle\Helper;
4
5use Doctrine\ORM\Mapping as ORM;
6
7/**
8 * Trait to handle created & updated date of an Entity.
9 */
10trait EntityTimestampsTrait
11{
12 /**
13 * @ORM\PrePersist
14 * @ORM\PreUpdate
15 */
16 public function timestamps()
17 {
18 if (null === $this->createdAt) {
19 $this->createdAt = new \DateTime();
20 }
21
22 $this->updatedAt = new \DateTime();
23 }
24}
diff --git a/src/Wallabag/UserBundle/Entity/User.php b/src/Wallabag/UserBundle/Entity/User.php
index 53c327f9..48446e3c 100644
--- a/src/Wallabag/UserBundle/Entity/User.php
+++ b/src/Wallabag/UserBundle/Entity/User.php
@@ -15,6 +15,7 @@ use Symfony\Component\Security\Core\User\UserInterface;
15use Wallabag\ApiBundle\Entity\Client; 15use Wallabag\ApiBundle\Entity\Client;
16use Wallabag\CoreBundle\Entity\Config; 16use Wallabag\CoreBundle\Entity\Config;
17use Wallabag\CoreBundle\Entity\Entry; 17use Wallabag\CoreBundle\Entity\Entry;
18use Wallabag\CoreBundle\Helper\EntityTimestampsTrait;
18 19
19/** 20/**
20 * User. 21 * User.
@@ -29,6 +30,8 @@ use Wallabag\CoreBundle\Entity\Entry;
29 */ 30 */
30class User extends BaseUser implements TwoFactorInterface, TrustedComputerInterface 31class User extends BaseUser implements TwoFactorInterface, TrustedComputerInterface
31{ 32{
33 use EntityTimestampsTrait;
34
32 /** @Serializer\XmlAttribute */ 35 /** @Serializer\XmlAttribute */
33 /** 36 /**
34 * @var int 37 * @var int
@@ -139,19 +142,6 @@ class User extends BaseUser implements TwoFactorInterface, TrustedComputerInterf
139 } 142 }
140 143
141 /** 144 /**
142 * @ORM\PrePersist
143 * @ORM\PreUpdate
144 */
145 public function timestamps()
146 {
147 if (null === $this->createdAt) {
148 $this->createdAt = new \DateTime();
149 }
150
151 $this->updatedAt = new \DateTime();
152 }
153
154 /**
155 * Set name. 145 * Set name.
156 * 146 *
157 * @param string $name 147 * @param string $name