From 1aacdead062b285b64f7d8c88a714e1af5ac0bcd Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Wed, 23 Mar 2016 22:36:44 +0300 Subject: [PATCH] Symfony Serializer annotations removed. Lifecycle 'preUpdate' callbacks added in User and Post entities. --- .../PointToolsBundle/Entity/Blogs/Comment.php | 15 ------ .../PointToolsBundle/Entity/Blogs/Post.php | 51 +++++++++---------- .../PointToolsBundle/Entity/Blogs/Tag.php | 3 -- .../Bundle/PointToolsBundle/Entity/User.php | 23 +++++++++ 4 files changed, 48 insertions(+), 44 deletions(-) diff --git a/src/Skobkin/Bundle/PointToolsBundle/Entity/Blogs/Comment.php b/src/Skobkin/Bundle/PointToolsBundle/Entity/Blogs/Comment.php index 7d3836b..f10d227 100644 --- a/src/Skobkin/Bundle/PointToolsBundle/Entity/Blogs/Comment.php +++ b/src/Skobkin/Bundle/PointToolsBundle/Entity/Blogs/Comment.php @@ -4,7 +4,6 @@ namespace Skobkin\Bundle\PointToolsBundle\Entity\Blogs; use Doctrine\ORM\Mapping as ORM; use Skobkin\Bundle\PointToolsBundle\Entity\User; -use Symfony\Component\Serializer\Annotation as Serializer; /** * Comment @@ -19,8 +18,6 @@ class Comment /** * @var integer * - * @Serializer\Groups("post_show") - * * @ORM\Column(name="id", type="integer") * @ORM\Id */ @@ -29,8 +26,6 @@ class Comment /** * @var string * - * @Serializer\Groups("post_show") - * * @ORM\Column(name="text", type="text") */ private $text; @@ -38,8 +33,6 @@ class Comment /** * @var \DateTime * - * @Serializer\Groups("post_show") - * * @ORM\Column(name="created_at", type="datetime") */ private $createdAt; @@ -47,8 +40,6 @@ class Comment /** * @var boolean * - * @Serializer\Groups("post_show") - * * @ORM\Column(name="is_rec", type="boolean") */ private $rec; @@ -56,8 +47,6 @@ class Comment /** * @var bool * - * @Serializer\Groups("post_show") - * * @ORM\Column(name="is_deleted", type="boolean") */ private $deleted = false; @@ -74,8 +63,6 @@ class Comment /** * @var User * - * @Serializer\Groups("post_show") - * * @ORM\ManyToOne(targetEntity="Skobkin\Bundle\PointToolsBundle\Entity\User") * @ORM\JoinColumn(name="author_id") */ @@ -84,8 +71,6 @@ class Comment /** * @var Comment|null * - * @Serializer\Groups("post_show") - * * @ORM\ManyToOne(targetEntity="Skobkin\Bundle\PointToolsBundle\Entity\Blogs\Comment") * @ORM\JoinColumn(name="to_comment_id", nullable=true) */ diff --git a/src/Skobkin/Bundle/PointToolsBundle/Entity/Blogs/Post.php b/src/Skobkin/Bundle/PointToolsBundle/Entity/Blogs/Post.php index e61eb48..7ecb5ba 100644 --- a/src/Skobkin/Bundle/PointToolsBundle/Entity/Blogs/Post.php +++ b/src/Skobkin/Bundle/PointToolsBundle/Entity/Blogs/Post.php @@ -5,7 +5,6 @@ namespace Skobkin\Bundle\PointToolsBundle\Entity\Blogs; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\Mapping as ORM; use Skobkin\Bundle\PointToolsBundle\Entity\User; -use Symfony\Component\Serializer\Annotation as Serializer; /** * Post @@ -15,6 +14,7 @@ use Symfony\Component\Serializer\Annotation as Serializer; * @ORM\Index(name="idx_post_private", columns={"private"}), * }) * @ORM\Entity(repositoryClass="Skobkin\Bundle\PointToolsBundle\Repository\Blogs\PostRepository") + * @ORM\HasLifecycleCallbacks */ class Post { @@ -24,8 +24,6 @@ class Post /** * @var int * - * @Serializer\Groups({"posts_list", "post_show"}) - * * @ORM\Column(name="id", type="string", length=16) * @ORM\Id */ @@ -34,8 +32,6 @@ class Post /** * @var string * - * @Serializer\Groups({"posts_list", "post_show"}) - * * @ORM\Column(name="text", type="text") */ private $text; @@ -43,16 +39,19 @@ class Post /** * @var \DateTime * - * @Serializer\Groups({"posts_list", "post_show"}) - * * @ORM\Column(name="created_at", type="datetime") */ private $createdAt; /** - * @var string + * @var \DateTime * - * @Serializer\Groups({"posts_list", "post_show"}) + * @ORM\Column(name="updated_at", type="datetime") + */ + private $updatedAt; + + /** + * @var string * * @ORM\Column(name="type", type="string", length=6) */ @@ -75,8 +74,6 @@ class Post /** * @var User * - * @Serializer\Groups({"posts_list", "post_show"}) - * * @ORM\ManyToOne(targetEntity="Skobkin\Bundle\PointToolsBundle\Entity\User") * @ORM\JoinColumn(name="author") */ @@ -85,8 +82,6 @@ class Post /** * @var Tag[]|ArrayCollection * - * @Serializer\Groups({"posts_list", "post_show"}) - * * @ORM\ManyToMany(targetEntity="Skobkin\Bundle\PointToolsBundle\Entity\Blogs\Tag", fetch="EXTRA_LAZY") * @ORM\JoinTable(name="posts.posts_tags", * joinColumns={@ORM\JoinColumn(name="post_id")}, @@ -98,8 +93,6 @@ class Post /** * @var Comment[]|ArrayCollection * - * @Serializer\Groups({"post_show"}) - * * @ORM\OneToMany(targetEntity="Skobkin\Bundle\PointToolsBundle\Entity\Blogs\Comment", mappedBy="post") */ private $comments; @@ -108,25 +101,23 @@ class Post /** * Post constructor. * @param string $id - * @param string $type - * @param bool $private - * @param string $text - * @param \DateTime $createdAt - * @param User|null $author */ - public function __construct($id, $type, $private, $text, \DateTime $createdAt, User $author = null) + public function __construct($id) { $this->id = $id; - $this->type = $type; - $this->private = $private; - $this->createdAt = $createdAt; - $this->text = $text; - $this->author = $author; $this->tags = new ArrayCollection(); $this->comments = new ArrayCollection(); } + /** + * @ORM\PreUpdate + */ + public function preUpdate() + { + $this->updatedAt = new \DateTime(); + } + /** * Get id * @@ -183,6 +174,14 @@ class Post return $this->createdAt; } + /** + * @return \DateTime + */ + public function getUpdatedAt() + { + return $this->updatedAt; + } + /** * Set type * diff --git a/src/Skobkin/Bundle/PointToolsBundle/Entity/Blogs/Tag.php b/src/Skobkin/Bundle/PointToolsBundle/Entity/Blogs/Tag.php index 3757ffb..91cdc8e 100644 --- a/src/Skobkin/Bundle/PointToolsBundle/Entity/Blogs/Tag.php +++ b/src/Skobkin/Bundle/PointToolsBundle/Entity/Blogs/Tag.php @@ -3,7 +3,6 @@ namespace Skobkin\Bundle\PointToolsBundle\Entity\Blogs; use Doctrine\ORM\Mapping as ORM; -use Symfony\Component\Serializer\Annotation as Serializer; /** * Tag @@ -27,8 +26,6 @@ class Tag /** * @var string * - * @Serializer\Groups("post_show") - * * @ORM\Column(name="text", type="text", unique=true) */ private $text; diff --git a/src/Skobkin/Bundle/PointToolsBundle/Entity/User.php b/src/Skobkin/Bundle/PointToolsBundle/Entity/User.php index 20f3dd6..cee5ed5 100644 --- a/src/Skobkin/Bundle/PointToolsBundle/Entity/User.php +++ b/src/Skobkin/Bundle/PointToolsBundle/Entity/User.php @@ -43,6 +43,13 @@ class User */ private $createdAt; + /** + * @var \DateTime + * + * @ORM\Column(name="updated_at", type="datetime") + */ + private $updatedAt; + /** * @var ArrayCollection * @@ -98,6 +105,14 @@ class User } } + /** + * @ORM\PreUpdate + */ + public function preUpdate() + { + $this->updatedAt = new \DateTime(); + } + /** * Get id * @@ -316,4 +331,12 @@ class User $this->createdAt = $createdAt; return $this; } + + /** + * @return \DateTime + */ + public function getUpdatedAt() + { + return $this->updatedAt; + } }