]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Add EntityTimestampsTrait to handle dates 3264/head
authorJeremy Benoist <jeremy.benoist@gmail.com>
Thu, 6 Jul 2017 07:00:37 +0000 (09:00 +0200)
committerJeremy Benoist <jeremy.benoist@gmail.com>
Thu, 6 Jul 2017 07:01:51 +0000 (09:01 +0200)
Refactorize timestamps() method to avoid re-writing it on each entity

src/Wallabag/AnnotationBundle/Entity/Annotation.php
src/Wallabag/CoreBundle/Entity/Entry.php
src/Wallabag/CoreBundle/Entity/SiteCredential.php
src/Wallabag/CoreBundle/Helper/EntityTimestampsTrait.php [new file with mode: 0644]
src/Wallabag/UserBundle/Entity/User.php

index 04d83001777cefee8f80c18a2ac00a3359b62165..a180d504786c866686a70e34b8510d133e9e3b11 100644 (file)
@@ -10,6 +10,7 @@ use JMS\Serializer\Annotation\SerializedName;
 use JMS\Serializer\Annotation\VirtualProperty;
 use Symfony\Component\Validator\Constraints as Assert;
 use Wallabag\CoreBundle\Entity\Entry;
+use Wallabag\CoreBundle\Helper\EntityTimestampsTrait;
 use Wallabag\UserBundle\Entity\User;
 
 /**
@@ -22,6 +23,8 @@ use Wallabag\UserBundle\Entity\User;
  */
 class Annotation
 {
+    use EntityTimestampsTrait;
+
     /**
      * @var int
      *
@@ -133,18 +136,6 @@ class Annotation
         return $this->text;
     }
 
-    /**
-     * @ORM\PrePersist
-     * @ORM\PreUpdate
-     */
-    public function timestamps()
-    {
-        if (null === $this->createdAt) {
-            $this->createdAt = new \DateTime();
-        }
-        $this->updatedAt = new \DateTime();
-    }
-
     /**
      * Get created.
      *
index cba72d31e07385ba736638df84c14862a31cf5a1..61d01bdcdadd5f0a52ceb3e66f08ae1eb0228cb9 100644 (file)
@@ -12,6 +12,7 @@ use JMS\Serializer\Annotation\VirtualProperty;
 use JMS\Serializer\Annotation\XmlRoot;
 use Symfony\Component\Validator\Constraints as Assert;
 use Wallabag\AnnotationBundle\Entity\Annotation;
+use Wallabag\CoreBundle\Helper\EntityTimestampsTrait;
 use Wallabag\UserBundle\Entity\User;
 
 /**
@@ -32,6 +33,8 @@ use Wallabag\UserBundle\Entity\User;
  */
 class Entry
 {
+    use EntityTimestampsTrait;
+
     /** @Serializer\XmlAttribute */
     /**
      * @var int
@@ -472,19 +475,6 @@ class Entry
         return $this->updatedAt;
     }
 
-    /**
-     * @ORM\PrePersist
-     * @ORM\PreUpdate
-     */
-    public function timestamps()
-    {
-        if (null === $this->createdAt) {
-            $this->createdAt = new \DateTime();
-        }
-
-        $this->updatedAt = new \DateTime();
-    }
-
     /**
      * @return ArrayCollection<Annotation>
      */
index 4d6557c59986845bd6046d6268db8eb94372a203..ac714359d6b817b5fc7a901ae84dc1e85cac52e6 100644 (file)
@@ -4,6 +4,7 @@ namespace Wallabag\CoreBundle\Entity;
 
 use Doctrine\ORM\Mapping as ORM;
 use Symfony\Component\Validator\Constraints as Assert;
+use Wallabag\CoreBundle\Helper\EntityTimestampsTrait;
 use Wallabag\UserBundle\Entity\User;
 
 /**
@@ -15,6 +16,8 @@ use Wallabag\UserBundle\Entity\User;
  */
 class SiteCredential
 {
+    use EntityTimestampsTrait;
+
     /**
      * @var int
      *
@@ -182,14 +185,4 @@ class SiteCredential
     {
         return $this->user;
     }
-
-    /**
-     * @ORM\PrePersist
-     */
-    public function timestamps()
-    {
-        if (null === $this->createdAt) {
-            $this->createdAt = new \DateTime();
-        }
-    }
 }
diff --git a/src/Wallabag/CoreBundle/Helper/EntityTimestampsTrait.php b/src/Wallabag/CoreBundle/Helper/EntityTimestampsTrait.php
new file mode 100644 (file)
index 0000000..1b1ff54
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+
+namespace Wallabag\CoreBundle\Helper;
+
+use Doctrine\ORM\Mapping as ORM;
+
+/**
+ * Trait to handle created & updated date of an Entity.
+ */
+trait EntityTimestampsTrait
+{
+    /**
+     * @ORM\PrePersist
+     * @ORM\PreUpdate
+     */
+    public function timestamps()
+    {
+        if (null === $this->createdAt) {
+            $this->createdAt = new \DateTime();
+        }
+
+        $this->updatedAt = new \DateTime();
+    }
+}
index 53c327f9b92baad663aea08adaf80f4e5f4993f5..48446e3c1a6e64be30725ac03b77e2a636313fd4 100644 (file)
@@ -15,6 +15,7 @@ use Symfony\Component\Security\Core\User\UserInterface;
 use Wallabag\ApiBundle\Entity\Client;
 use Wallabag\CoreBundle\Entity\Config;
 use Wallabag\CoreBundle\Entity\Entry;
+use Wallabag\CoreBundle\Helper\EntityTimestampsTrait;
 
 /**
  * User.
@@ -29,6 +30,8 @@ use Wallabag\CoreBundle\Entity\Entry;
  */
 class User extends BaseUser implements TwoFactorInterface, TrustedComputerInterface
 {
+    use EntityTimestampsTrait;
+
     /** @Serializer\XmlAttribute */
     /**
      * @var int
@@ -138,19 +141,6 @@ class User extends BaseUser implements TwoFactorInterface, TrustedComputerInterf
         $this->roles = ['ROLE_USER'];
     }
 
-    /**
-     * @ORM\PrePersist
-     * @ORM\PreUpdate
-     */
-    public function timestamps()
-    {
-        if (null === $this->createdAt) {
-            $this->createdAt = new \DateTime();
-        }
-
-        $this->updatedAt = new \DateTime();
-    }
-
     /**
      * Set name.
      *